Skip to content

genirq, proc: Speedup /proc/stat interrupt statistics

Thomas Gleixner linux-fsdevel lkml 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest2 patches 9 repliesIn review
  2. v12 patches 9 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2genriq: Avoid summation loops for /proc/statinclude/linux/irqdesc.h kernel/irq/chip.c kernel/irq/internals.h +1 more+24 -45 replies
2/2proc/stat: Make the interrupt statistics more efficientfs/proc/stat.c+26 -31 reply

Reviews trailers per patch

1 of 2 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchWaiman LongAlexey DobriyanDavidlohr BuesoMarc Zyngier
SeriesR-b R-b R-b
1/2
2/2R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v2 thread

Cover letter [patch V2 0/2] genirq, proc: Speedup /proc/stat interrupt statistics

Waiman reported that on large systems with a large amount of interrupts the readout of /proc/stat takes a long time to sum up the interrupt statistics. In principle this is not a problem. but for unknown reasons some enterprise quality software reads /proc/stat with a high frequency.

The reason for this is that interrupt statistics are accounted per cpu. So the /proc/stat logic has to sum up the interrupt stats for each interrupt.

The following series addresses this by making the interrupt statitics code in the core generate the sum directly and by making the loop in the /proc/stat read function smarter.

V1 -> V2: Address review feedback: undo struct layout changes, make
variables unsigned and add test results to the changelog.

Thanks,

tglx

8<----------------

 fs/proc/stat.c          |   29 ++++++++++++++++++++++++++---
 include/linux/irqdesc.h |    1 +
 kernel/irq/chip.c       |   12 ++++++++++--
 kernel/irq/internals.h  |    8 +++++++-
 kernel/irq/irqdesc.c    |    7 ++++++-
 5 files changed, 50 insertions(+), 7 deletions(-)