This series is based on work by Thomas Gleixner[1].
There are several optimization which helps to bring the time taken to
read /proc/interrupts. Though it is not in fastpaths, still many tools
read it often and this reduction in time will save meaningful amount of
cycle over the long duration.
[1]: https://lore.kernel.org/all/20260517194421.705253664@kernel.org/
Bulk of the design/code is copied from Thomas's work on x86. powerpc had
exact pattern which made it quite easy to port.
Using micro-loops[2] of reading /proc/interrupts shows real benefit of
the series. Bulk of the gain is already achieved using Thomas's
series[1]. This series on top provide some more benefits. As the system
size goes up, benefits could be more.
[2]: https://lore.kernel.org/all/87jysxw65f.ffs@tglx/
======== Performance Data ==================
Time taken to read /proc/interrupts 1000 times[2]
Base : 103us
v6 : 63us
v6+patch 1+2 : 57us
v6+patch 1+2+3 : 54us
Base: tip/master at c991e3897ead ("Merge branch into tip/master: 'x86/tdx'")
Depends on v6[1] to be applied first.
Shrikanth Hegde (3):
powerpc/irq: Move __softirq_pending out of irq_stat
powerpc/irq: Make irqstats array based
powerpc/irq: Suppress unlikely interrupt stats by default
arch/powerpc/include/asm/hardirq.h | 31 ++++---
arch/powerpc/kernel/dbell.c | 2 +-
arch/powerpc/kernel/irq.c | 131 +++++++++++++++--------------
arch/powerpc/kernel/time.c | 6 +-
arch/powerpc/kernel/traps.c | 11 +--
arch/powerpc/kernel/watchdog.c | 2 +-
6 files changed, 95 insertions(+), 88 deletions(-)
--
2.47.3