diff options
author | Michael Abbott <michael.abbott@diamond.ac.uk> | 2009-09-24 10:15:19 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-10-05 09:33:01 -0700 |
commit | 03429ffaea91375d8ed80a60fa13c9ffe694539a (patch) | |
tree | 72dd15a75459dce69f4684a2ece8dd10c545650e /fs | |
parent | 38a76cc6f6101a0cc42c2e58783107ec646efabe (diff) |
Fix idle time field in /proc/uptime
commit 96830a57de1197519b62af6a4c9ceea556c18c3d upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/proc/uptime.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c index 0c10a0b3f14..766b1d45605 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); |