Re: [patch 0/2] genirq, proc: Speedup /proc/stat interrupt statistics

From: Waiman Long
Date: Wed Jan 30 2019 - 22:46:28 EST


On 01/30/2019 05:00 PM, Thomas Gleixner wrote:
> On Wed, 30 Jan 2019, Andrew Morton wrote:
>> On Wed, 30 Jan 2019 13:31:30 +0100 Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>>
>>> 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.
>>>
>> Has the speedup been quantified?
> Waiman should be able to provide numbers
>
>
On a 4-socket IvyBridge-EX system (60-core 120-thread) and 3016 irqs, I
ran a test program that read /proc/stat 50,000 time. Before the patch,
the elapsed time was 18.436s (sys 18.380s). After the patch, it was
3.769s (sys 3.742s). It was an almost 80% reduction in execution time.
It was better than I expected. I like that.

Cheers,
Longman