From: Jeremy Fitzhardinge <jeremy@goop.org>
To: akataria@vmware.com
Cc: Ingo Molnar <mingo@elte.hu>,
schwidefsky@de.ibm.com,
virtualization@lists.linux-foundation.org,
LKML <linux-kernel@vger.kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: Process accounting in interrupt diabled cases
Date: Fri, 06 Mar 2009 16:37:37 -0800 [thread overview]
Message-ID: <49B1C1D1.4070603@goop.org> (raw)
In-Reply-To: <1236380615.4637.67.camel@alok-dev1>
Alok Kataria wrote:
> Hi,
>
> I am not sure, but I think this may be a process accounting bug.
>
> If interrupts are disabled for a considerable amount of time ( say
> multiple ticks), the process accounting code will still account a single
> tick for such cases, on the next interrupt tick.
> Shouldn't we have some way to fix that case like we do for NO_HZ
> restart_sched_tick case, where we account for multiple idle ticks.
>
> IOW, doesn't process accounting need to account for these cases when
> interrupts are disabled for more than one tick period?
>
Why are interrupts being disabled for so long? If its happening often
enough to upset process accounting, then surely the fix is to not
disable interrupts for such a long time?
> I stumbled across this while trying to find a solution to figure out the
> amount of stolen time from Linux, when it is running under a hypervisor.
> One of the solutions could be to ask the hypervisor directly for this
> info, but in my quest to find a generic solution I think the below would
> work too.
> The total process time accounted by the system on a cpu ( system, idle,
> wait and etc) when deducted from the amount TSC counter has advanced
> since boot, should give us this info about the cputime stolen from the
> kernel
You're assuming that the tsc is always going to be advancing at a
constant rate in wallclock time? Is that a good assumption? Does
VMWare virtualize the tsc to make this valid? If something's going to
the effort of virtualizing tsc, how do you know they're not also
excluding stolen time? Is the tsc guaranteed to be synchronized across
cpus?
> (by either hypervisor or other cases like say, SMI)
(In the past I've argued that stolen time is not a binary property; your
time can be "stolen" when you're running on a slow CPU, as well as
explicit behind-the-scenes context switching, which could well be worth
accounting for.)
> on a
> particular CPU.
> i.e. PCPU_STOLEN = (TSC since boot) - (PCPU-idle + system + wait + ...)
>
What timebase is the kernel using to measure idle, system, wait, ...?
Presumably something that doesn't include stolen time. In that case
this just comes down to "PCPU_STOLEN = TOTAL_TIME - PCPU_UNSTOLEN_TIME",
where you're proposing that TOTAL_TIME is the tsc.
Direct use of the tsc definitely doesn't work in a Xen PV guest because
the tsc is the raw physical cpu tsc; but Xen also provides everything
you need to derive a globally-meaningful timebase from the tsc. Xen
also provides per-vcpu info on time spent blocked, runnable (ie, could
run but no pcpu available), running and offline.
J
next prev parent reply other threads:[~2009-03-07 0:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-06 23:03 Process accounting in interrupt diabled cases Alok Kataria
2009-03-07 0:37 ` Jeremy Fitzhardinge [this message]
2009-03-07 0:59 ` Alok Kataria
2009-03-07 1:26 ` Jeremy Fitzhardinge
2009-03-07 8:59 ` Alok Kataria
2009-03-11 8:47 ` Martin Schwidefsky
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=49B1C1D1.4070603@goop.org \
--to=jeremy@goop.org \
--cc=akataria@vmware.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=schwidefsky@de.ibm.com \
--cc=virtualization@lists.linux-foundation.org \
/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