|
@@ -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);
|