All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Michael Abbott <michael@araneidae.co.uk>
Cc: Jan Engelhardt <jengelh@medozas.de>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Johan van Baarlen <JF@vanbaarlen.demon.nl>
Subject: Re: [PATCH] Re: /proc/uptime idle counter remains at 0
Date: Tue, 8 Sep 2009 22:58:58 -0700	[thread overview]
Message-ID: <20090908225858.04d56dce.akpm@linux-foundation.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0908141315310.1670@venus.araneidae.co.uk>

On Fri, 14 Aug 2009 13:18:08 +0100 (BST) Michael Abbott <michael@araneidae.co.uk> wrote:

> Reviving this:
> 
> On Sat, 9 May 2009, Jan Engelhardt 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?
> 
> My previous patch seems to have run into the sand.  It every so nearly got 
> pulled into mainstream as far as I can tell, but didn't seem to make it; 
> no idea what happened.
> 
> So here we go again:
> 

Imagine my surprise to find a version of this patch lurking in Martin's
tree since June 22.  It's a regression fix!

Johan, does this patch help with the regression you reported in
http://bugzilla.kernel.org/show_bug.cgi?id=14131 ?

Thanks.


commit 27bf8712477db47c891e6198000c985631cd18de
Author:     Michael Abbott <michael.abbott@diamond.ac.uk>
AuthorDate: Mon Jun 22 12:19:25 2009 +0200
Commit:     Martin Schwidefsky <schwidefsky@de.ibm.com>
CommitDate: Mon Jun 22 12:20:44 2009 +0200

    [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>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c
index 0c10a0b..766b1d4 100644
--- a/fs/proc/uptime.c
+++ b/fs/proc/uptime.c
@@ -4,13 +4,18 @@
 #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 i;
+	cputime_t idletime = cputime_zero;
+
+	for_each_possible_cpu(i)
+		idletime = cputime64_add(idletime, kstat_cpu(i).cpustat.idle);
 
 	do_posix_clock_monotonic_gettime(&uptime);
 	monotonic_to_bootbased(&uptime);


  parent reply	other threads:[~2009-09-09  6:04 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-09  8:05 /proc/uptime idle counter remains at 0 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-05-11  7:23     ` Martin Schwidefsky
2009-08-14 12:18 ` [PATCH] " 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 [this message]
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
  -- strict thread matches above, loose matches on Subject: below --
2009-05-18 13:23 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

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=20090908225858.04d56dce.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=JF@vanbaarlen.demon.nl \
    --cc=jengelh@medozas.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@araneidae.co.uk \
    --cc=schwidefsky@de.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.