Re: /proc/uptime idle counter remains at 0
From: Martin Schwidefsky
Date: Sun May 10 2009 - 13:12:50 EST
On Sat, 9 May 2009 10:05:57 +0200 (CEST)
Jan Engelhardt <jengelh@xxxxxxxxxx> wrote:
> starting from v2.6.28-4930-g79741dd lasting thru at least v2.6.29.1,
> the second field of /proc/uptime always shows 0.00. This happens for
> both the typical i386 (my case) and on an ARM (according to Michael,
> cc'ed).
>
> From the commit log of 79741dd:
>
> """The cpu time spent by the idle process actually doing
> something is currently accounted as idle time. This is plain
> wrong, the architectures that support VIRT_CPU_ACCOUNTING=y
> can do better: distinguish between the time spent doing
> nothing and the time spent by idle doing work. The first is
> accounted with account_idle_time and the second with
> account_system_time."""
>
> Citing Michael from our irc conversation:
>
> """the writer[committer] [says] that [the] idle process time
> isn't really idle time ... but that's all that /proc/uptime
> looks at. I guess fs/proc/uptime.c needs to catch up."""
>
> So, were the updates to uptime.c missed, or do we now live on with
> /proc/uptime constantly having 0?
The second paragraph from git commit 79741dd tells you more about this:
In addition idle time is no more added to the stime of the idle
process. This field now contains the system time of the idle process as
it should be. On systems without VIRT_CPU_ACCOUNTING this will always
be zero as every tick that occurs while idle is running will be
accounted as idle time.
The point is the semantics of the stime field for the idle process. The
stime field used to contain the real system time (cpu really did
something) of the idle process plus the idle time (cpu is stopped).
After the change the field only contains the real system time. Which is
ihmo much more useful, no?
--
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/