[GIT PULL] IRQ changes for v5.2

From: Ingo Molnar
Date: Mon May 06 2019 - 04:37:06 EST


Linus,

Please pull the latest irq-core-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-for-linus

# HEAD: 471ba0e686cb13752bc1ff3216c54b69a2d250ea irq_work: Do not raise an IPI when queueing work on the local CPU

The changes in this cycle were:

- Remove the irq timings/variance statistics code that tried to predict
when the next interrupt would occur, which didn't work out as hoped
and will is replaced by another mechanism.

- This new mechanism is the 'array suffix computation' estimate, which
is superior to the previous one as it can detect not just a single
periodic pattern, but independent periodic patterns along a log-2
scale of bucketing and exponential moving average. The comments are
longer than the code - and it works better at predicting various
complex interrupt patterns from real-world devices than the previous
estimate.

- avoid IRQ-work self-IPIs on the local CPU

- fix work-list corruption in irq_set_affinity_notifier()

Thanks,

Ingo

------------------>
Daniel Lezcano (2):
genirq/timings: Remove variance computation code
genirq/timings: Add array suffix computation code

Gustavo A. R. Silva (1):
genirq/devres: Use struct_size() in devm_kzalloc()

Nicholas Piggin (1):
irq_work: Do not raise an IPI when queueing work on the local CPU

Prasad Sodagudi (1):
genirq: Prevent use-after-free and work list corruption


kernel/irq/devres.c | 3 +-
kernel/irq/manage.c | 4 +-
kernel/irq/timings.c | 522 +++++++++++++++++++++++++++++++++++----------------
kernel/irq_work.c | 75 ++++----
4 files changed, 409 insertions(+), 195 deletions(-)