Re: [PATCH] sched/cputime: Fix ksoftirqd cputime accounting regression

From: Rik van Riel
Date: Wed Apr 26 2017 - 11:44:37 EST


On Tue, 2017-04-25 at 16:10 +0200, Frederic Weisbecker wrote:
> irq_time_read() returns the irqtime minus the ksoftirqd time. This
> is necessary because irq_time_read() is used to substract the IRQ
> time
> from the sum_exec_runtime of a task. If we were to include the
> softirq
> time of ksoftirqd, this task would substract its own CPU time
> everytime
> it updates ksoftirqd->sum_exec_runtime which would therefore never
> progress.
>
> But this behaviour got broken by commit a499a5a14db:
> ("sched/cputime: Increment kcpustat directly on irqtime
> account")
> which now includes ksoftirqd softirq time in the time returned by
> irq_time_read().

Ahhh, after a look at account_system_time, it becomes
clear why that was happening!

Reviewed-by: Rik van Riel <riel@xxxxxxxxxx>