diff options
Diffstat (limited to 'fs/proc/uptime.c')
-rw-r--r-- | fs/proc/uptime.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c index 33de567c25af..7981c4ffe787 100644 --- a/fs/proc/uptime.c +++ b/fs/proc/uptime.c | |||
@@ -5,23 +5,20 @@ | |||
5 | #include <linux/seq_file.h> | 5 | #include <linux/seq_file.h> |
6 | #include <linux/time.h> | 6 | #include <linux/time.h> |
7 | #include <linux/kernel_stat.h> | 7 | #include <linux/kernel_stat.h> |
8 | #include <linux/cputime.h> | ||
9 | 8 | ||
10 | static int uptime_proc_show(struct seq_file *m, void *v) | 9 | static int uptime_proc_show(struct seq_file *m, void *v) |
11 | { | 10 | { |
12 | struct timespec uptime; | 11 | struct timespec uptime; |
13 | struct timespec idle; | 12 | struct timespec idle; |
14 | u64 idletime; | ||
15 | u64 nsec; | 13 | u64 nsec; |
16 | u32 rem; | 14 | u32 rem; |
17 | int i; | 15 | int i; |
18 | 16 | ||
19 | idletime = 0; | 17 | nsec = 0; |
20 | for_each_possible_cpu(i) | 18 | for_each_possible_cpu(i) |
21 | idletime += (__force u64) kcpustat_cpu(i).cpustat[CPUTIME_IDLE]; | 19 | nsec += (__force u64) kcpustat_cpu(i).cpustat[CPUTIME_IDLE]; |
22 | 20 | ||
23 | get_monotonic_boottime(&uptime); | 21 | get_monotonic_boottime(&uptime); |
24 | nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC; | ||
25 | idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem); | 22 | idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem); |
26 | idle.tv_nsec = rem; | 23 | idle.tv_nsec = rem; |
27 | seq_printf(m, "%lu.%02lu %lu.%02lu\n", | 24 | seq_printf(m, "%lu.%02lu %lu.%02lu\n", |