From: Peter Zijlstra <peterz@infradead.org>
To: Venkatesh Pallipadi <venki@google.com>
Cc: Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Balbir Singh <balbir@linux.vnet.ibm.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
linux-kernel@vger.kernel.org, Paul Turner <pjt@google.com>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: Re: [PATCH 3/7] Add IRQ_TIME_ACCOUNTING, finer accounting of irq time -v3
Date: Fri, 01 Oct 2010 13:45:02 +0200 [thread overview]
Message-ID: <1285933502.2144.56.camel@laptop> (raw)
In-Reply-To: <AANLkTi=r5DX52+735OtGHmJCS38n1P_WxEkKzLVf1E_m@mail.gmail.com>
On Thu, 2010-09-30 at 09:29 -0700, Venkatesh Pallipadi wrote:
> On Thu, Sep 30, 2010 at 4:06 AM, Peter Zijlstra <peterz@infradead.org> wrote:
> > On Wed, 2010-09-29 at 12:21 -0700, Venkatesh Pallipadi wrote:
> >> +void account_system_vtime(struct task_struct *curr)
> >> +{
> >> + unsigned long flags;
> >> + int cpu;
> >> + u64 now, delta;
> >> +
> >> + if (!sched_clock_irqtime)
> >> + return;
> >> +
> >> + local_irq_save(flags);
> >> +
> >> + now = sched_clock();
> >> + cpu = smp_processor_id();
> >
> > Like said before, that really wants to read like:
> >
> > cpu = smp_processor_id();
> > now = sched_clock_cpu(cpu);
> >
> > sched_clock() is raw tsc + ns conversion and can go all over the place.
>
> sched_clock_cpu() won't really work for here, due to what looks like
> idle and timer tick dependencies. Using sched_clock_cpu(), I end up
> accounting CPU idle time to hardirq due to time captured before the
> handler and after the handler.
huh!?
No, sched_clock_cpu() gives sched_clock() for those few systems that
actually have a usable tsc, for those that don't we use the tick (and
idle hooks) to read GTOD and set up a TICK_NSEC window. We then use TSC
to calculate high res deltas, we filter anything that goes backwards and
anything that exceeds the window.
How does that render it useless for this purpose?
Never use sched_clock(), its crap (just like TSC is).
next prev parent reply other threads:[~2010-10-01 11:45 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-29 19:21 Proper kernel irq time accounting -v3 Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 1/7] si time accounting accounts bh_disable'd time to si -v3 Venkatesh Pallipadi
2010-09-30 11:04 ` Peter Zijlstra
2010-09-30 16:26 ` Venkatesh Pallipadi
2010-10-01 23:16 ` Peter Zijlstra
2010-10-02 15:42 ` Venkatesh Pallipadi
2010-10-03 0:34 ` Peter Zijlstra
2010-10-04 16:54 ` Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 2/7] Consolidate account_system_vtime extern declaration -v3 Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 3/7] Add IRQ_TIME_ACCOUNTING, finer accounting of irq time -v3 Venkatesh Pallipadi
2010-09-30 11:06 ` Peter Zijlstra
2010-09-30 16:29 ` Venkatesh Pallipadi
2010-09-30 20:38 ` Venkatesh Pallipadi
2010-10-01 11:46 ` Peter Zijlstra
2010-10-01 16:51 ` Venkatesh Pallipadi
2010-10-01 17:29 ` Venkatesh Pallipadi
2010-10-01 23:14 ` Peter Zijlstra
2010-10-01 23:32 ` Venkatesh Pallipadi
2010-10-02 10:53 ` Peter Zijlstra
2010-10-02 15:26 ` Venkatesh Pallipadi
2010-10-03 0:26 ` Peter Zijlstra
2010-10-01 11:45 ` Peter Zijlstra [this message]
2010-09-29 19:21 ` [PATCH 4/7] x86: Add IRQ_TIME_ACCOUNTING in x86 -v3 Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 5/7] sched: Do not account irq time to current task -v3 Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 6/7] sched: Remove irq time from available CPU power -v3 Venkatesh Pallipadi
2010-09-29 19:21 ` [PATCH 7/7] Export per cpu hardirq and softirq time in proc -v3 Venkatesh Pallipadi
2010-09-30 7:59 ` Proper kernel irq time accounting -v3 Andi Kleen
2010-09-30 16:37 ` Venkatesh Pallipadi
2010-09-30 17:36 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1285933502.2144.56.camel@laptop \
--to=peterz@infradead.org \
--cc=balbir@linux.vnet.ibm.com \
--cc=eric.dumazet@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=pjt@google.com \
--cc=schwidefsky@de.ibm.com \
--cc=tglx@linutronix.de \
--cc=venki@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox