Re: IRQ / SoftIRQ CPU time accounting broken by457533a7d3402d1d91fbc125c8bd1bd16dcd3cd4

From: Martin Schwidefsky
Date: Wed Apr 29 2009 - 04:03:46 EST


On Tue, 28 Apr 2009 16:30:04 -0700
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> (cc's added)
>
> On Thu, 23 Apr 2009 10:19:38 -0400
> Andrew Gallatin <gallatin@xxxxxxxx> wrote:
>
> > When running netperf for some 10GbE tests, I noticed
> > that IRQ and SOFTIRQ CPU time is no longer reported for an
> > otherwise idle CPU on recent kernels, at least for x86_64.
> >
> > I spent a few hours git-bisecting until I finally got here:
> >
> > % git-bisect bad
> > Bisecting: 0 revisions left to test after this
> > [457533a7d3402d1d91fbc125c8bd1bd16dcd3cd4] fix scaled & unscaled cputime
> > accounting
> >
> > I have neither CONFIG_NO_HZ, CONFIG_VIRT_CPU_ACCOUNTING, or XEN configured.
> >
>
> Thanks for doing the bisection.
>
> 457533a7d3402d1d91fbc125c8bd1bd16dcd3cd4 was merged late last year, so
> this regression has been around for a while.
>
> We might have fixed it in more recent kernels - stranger things have
> happened ;)

Hmm, are you sure that this commit caused the problem? I can't see how.
In regard to the accounting of system ticks on x86_64 the only change
is the bug fix that a system tick of a guest cpu has incorrectly been
added to p->stimescaled instead of p->utimescaled.
Without guest cpus in the picture nothing changes. For x86_64
CONFIG_VIRT_CPU_ACCOUNTING=n so account_process_tick is used. Before
the patch accout_process_tick accounted a system tick by calling
account_system_time and account_system_time_scaled. The second function
just added the cputime to p->stimescaled. That is now done in
accout_system_time.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/