linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Re: /proc/uptime idle counter remains at 0
@ 2009-05-18 13:23 Michael Abbott
  2009-05-18 14:00 ` Martin Schwidefsky
  2009-05-25 10:28 ` Martin Schwidefsky
  0 siblings, 2 replies; 22+ messages in thread
From: Michael Abbott @ 2009-05-18 13:23 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Jan Engelhardt, Martin Schwidefsky

Resending this patch, as it doesn't seem to have made it into the kernel 
(and this feature really doesn't need to be left broken).

---------- Forwarded message ----------
Date: Mon, 11 May 2009 10:07:14 +0100 (BST)
From: Michael Abbott <michael@araneidae.co.uk>
To: Jan Engelhardt <jengelh@medozas.de>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>,
    Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] Re: /proc/uptime idle counter remains at 0

On Mon, 11 May 2009, Michael Abbott wrote:
> So as a simple solution, I've attached a patch where I just copy the 
> idle field processing from fs/proc/stat.c.  I expect that on a 
> multi-processor machine things may not be quite so simple -- as up time 
> is in elapsed wall-clock time, then so should idle time be, so we 
> probably need to also divide by the number of processors.  Afraid I 
> don't have a multiprocessor test system, and /proc/stat seems ok, so 
> I've not made this refinement.

To hopefully help, I've rebased the patch onto current git 
(fs/proc/uptime.c has undergone some unrelated changes).


Date: Mon, 11 May 2009 07:14:19 +0100
Subject: [PATCH] Fix idle time field in /proc/uptime

Git commit 79741dd changes idle cputime accounting, but unfortunately
the /proc/uptime file hasn't caught up.  Here the idle time calculation
from /proc/stat is copied over.

Signed-off-by: Michael Abbott <michael.abbott@diamond.ac.uk>
---
 fs/proc/uptime.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c
index 0c10a0b..0f43395 100644
--- a/fs/proc/uptime.c
+++ b/fs/proc/uptime.c
@@ -4,13 +4,19 @@
 #include <linux/sched.h>
 #include <linux/seq_file.h>
 #include <linux/time.h>
+#include <linux/kernel_stat.h>
 #include <asm/cputime.h>
 
 static int uptime_proc_show(struct seq_file *m, void *v)
 {
 	struct timespec uptime;
 	struct timespec idle;
-	cputime_t idletime = cputime_add(init_task.utime, init_task.stime);
+	int len, i;
+	cputime_t idletime = 0;
+
+	for_each_possible_cpu(i) 
+		idletime = cputime64_add(idletime, kstat_cpu(i).cpustat.idle);
+	idletime = cputime64_to_clock_t(idletime);
 
 	do_posix_clock_monotonic_gettime(&uptime);
 	monotonic_to_bootbased(&uptime);
-- 
1.6.1.3


^ permalink raw reply related	[flat|nested] 22+ messages in thread
* /proc/uptime idle counter remains at 0
@ 2009-05-09  8:05 Jan Engelhardt
  2009-05-10 17:12 ` Martin Schwidefsky
  2009-08-14 12:18 ` Michael Abbott
  0 siblings, 2 replies; 22+ messages in thread
From: Jan Engelhardt @ 2009-05-09  8:05 UTC (permalink / raw)
  To: Martin Schwidefsky; +Cc: Linux Kernel Mailing List, michael

Hi,


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?



Jan

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2009-09-10 16:28 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-18 13:23 [PATCH] Re: /proc/uptime idle counter remains at 0 Michael Abbott
2009-05-18 14:00 ` Martin Schwidefsky
2009-05-25 10:28 ` Martin Schwidefsky
2009-07-06 15:48   ` Michael Abbott
2009-07-06 15:56     ` Jan Engelhardt
2009-07-06 16:09       ` Michael Abbott
  -- strict thread matches above, loose matches on Subject: below --
2009-05-09  8:05 Jan Engelhardt
2009-05-10 17:12 ` Martin Schwidefsky
2009-05-11  0:46   ` Jan Engelhardt
2009-05-11  6:23     ` [PATCH] " Michael Abbott
2009-05-11  7:35       ` Martin Schwidefsky
2009-05-11  7:42         ` Jan Engelhardt
2009-05-11  8:10           ` Martin Schwidefsky
2009-05-11  9:07       ` Michael Abbott
2009-08-14 12:18 ` Michael Abbott
2009-08-17  5:25   ` Amerigo Wang
2009-08-17  6:12     ` Michael Abbott
2009-08-17  6:23       ` Amerigo Wang
2009-08-17  6:58         ` Michael Abbott
2009-08-17  8:23           ` Amerigo Wang
2009-09-09  5:58   ` Andrew Morton
2009-09-09  8:02     ` Martin Schwidefsky
2009-09-10 13:02     ` Johan van Baarlen
2009-09-10 15:37       ` Martin Schwidefsky
2009-09-10 16:27         ` Michael Abbott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).