Re: Bisected softirq accounting issue in v4.11-rc1~170^2~28

From: Jesper Dangaard Brouer
Date: Tue Mar 28 2017 - 09:20:21 EST


On Tue, 28 Mar 2017 15:06:04 +0200
Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:

> On Tue, Mar 28, 2017 at 02:26:42PM +0200, Peter Zijlstra wrote:
> > On Tue, Mar 28, 2017 at 06:34:52PM +0800, Wanpeng Li wrote:
> > >
> > > sched_clock_cpu(cpu) should be converted from cputime to ns.
> >
> > Uhm, no. sched_clock_cpu() returns u64 in ns.
>
> Yes, and most of the cputime_t have been converted to u64 so there
> should be no such conversion issue between u64 and cputime_t anymore.
>
> Perhaps my commit has another side effect on softirq time accounting,
> I'll see if I can reproduce.

(Disclaimer without knowing anything about the scheduler code)
my theory is that irqtime_account_irq() does not get invoked often
enough, as in my pktgen "overload" use-case keeps softirq always
running. And your change moved updating cpustat[CPUTIME_SOFTIRQ] here.
Before it got updated by account_other_time() which gets invoked from
irqtime_account_process_tick().

--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer