diff options
-rw-r--r-- | fs/proc/base.c | 2 | ||||
-rw-r--r-- | include/linux/sched.h | 10 | ||||
-rw-r--r-- | kernel/delayacct.c | 10 | ||||
-rw-r--r-- | kernel/exit.c | 2 | ||||
-rw-r--r-- | kernel/fork.c | 4 | ||||
-rw-r--r-- | kernel/sched_stats.h | 2 |
6 files changed, 15 insertions, 15 deletions
diff --git a/fs/proc/base.c b/fs/proc/base.c index a5fa1fdafc4e..0f40e820c7fd 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -296,7 +296,7 @@ static int proc_pid_wchan(struct task_struct *task, char *buffer) | |||
296 | */ | 296 | */ |
297 | static int proc_pid_schedstat(struct task_struct *task, char *buffer) | 297 | static int proc_pid_schedstat(struct task_struct *task, char *buffer) |
298 | { | 298 | { |
299 | return sprintf(buffer, "%lu %lu %lu\n", | 299 | return sprintf(buffer, "%llu %llu %lu\n", |
300 | task->sched_info.cpu_time, | 300 | task->sched_info.cpu_time, |
301 | task->sched_info.run_delay, | 301 | task->sched_info.run_delay, |
302 | task->sched_info.pcnt); | 302 | task->sched_info.pcnt); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index fa895b309da0..e64dbd4cd829 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -562,13 +562,13 @@ struct reclaim_state; | |||
562 | #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) | 562 | #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) |
563 | struct sched_info { | 563 | struct sched_info { |
564 | /* cumulative counters */ | 564 | /* cumulative counters */ |
565 | unsigned long cpu_time, /* time spent on the cpu */ | 565 | unsigned long pcnt; /* # of times run on this cpu */ |
566 | run_delay, /* time spent waiting on a runqueue */ | 566 | unsigned long long cpu_time, /* time spent on the cpu */ |
567 | pcnt; /* # of timeslices run on this cpu */ | 567 | run_delay; /* time spent waiting on a runqueue */ |
568 | 568 | ||
569 | /* timestamps */ | 569 | /* timestamps */ |
570 | unsigned long last_arrival, /* when we last ran on a cpu */ | 570 | unsigned long long last_arrival,/* when we last ran on a cpu */ |
571 | last_queued; /* when we were last queued to run */ | 571 | last_queued; /* when we were last queued to run */ |
572 | }; | 572 | }; |
573 | #endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */ | 573 | #endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */ |
574 | 574 | ||
diff --git a/kernel/delayacct.c b/kernel/delayacct.c index c0148ae992c4..81e697829633 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c | |||
@@ -99,9 +99,10 @@ void __delayacct_blkio_end(void) | |||
99 | int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) | 99 | int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) |
100 | { | 100 | { |
101 | s64 tmp; | 101 | s64 tmp; |
102 | struct timespec ts; | 102 | unsigned long t1; |
103 | unsigned long t1,t2,t3; | 103 | unsigned long long t2, t3; |
104 | unsigned long flags; | 104 | unsigned long flags; |
105 | struct timespec ts; | ||
105 | 106 | ||
106 | /* Though tsk->delays accessed later, early exit avoids | 107 | /* Though tsk->delays accessed later, early exit avoids |
107 | * unnecessary returning of other data | 108 | * unnecessary returning of other data |
@@ -124,11 +125,10 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) | |||
124 | 125 | ||
125 | d->cpu_count += t1; | 126 | d->cpu_count += t1; |
126 | 127 | ||
127 | jiffies_to_timespec(t2, &ts); | 128 | tmp = (s64)d->cpu_delay_total + t2; |
128 | tmp = (s64)d->cpu_delay_total + timespec_to_ns(&ts); | ||
129 | d->cpu_delay_total = (tmp < (s64)d->cpu_delay_total) ? 0 : tmp; | 129 | d->cpu_delay_total = (tmp < (s64)d->cpu_delay_total) ? 0 : tmp; |
130 | 130 | ||
131 | tmp = (s64)d->cpu_run_virtual_total + (s64)jiffies_to_usecs(t3) * 1000; | 131 | tmp = (s64)d->cpu_run_virtual_total + t3; |
132 | d->cpu_run_virtual_total = | 132 | d->cpu_run_virtual_total = |
133 | (tmp < (s64)d->cpu_run_virtual_total) ? 0 : tmp; | 133 | (tmp < (s64)d->cpu_run_virtual_total) ? 0 : tmp; |
134 | 134 | ||
diff --git a/kernel/exit.c b/kernel/exit.c index 8fd7acd7bbd0..ca6a11b73023 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -122,9 +122,9 @@ static void __exit_signal(struct task_struct *tsk) | |||
122 | sig->maj_flt += tsk->maj_flt; | 122 | sig->maj_flt += tsk->maj_flt; |
123 | sig->nvcsw += tsk->nvcsw; | 123 | sig->nvcsw += tsk->nvcsw; |
124 | sig->nivcsw += tsk->nivcsw; | 124 | sig->nivcsw += tsk->nivcsw; |
125 | sig->sched_time += tsk->sched_time; | ||
126 | sig->inblock += task_io_get_inblock(tsk); | 125 | sig->inblock += task_io_get_inblock(tsk); |
127 | sig->oublock += task_io_get_oublock(tsk); | 126 | sig->oublock += task_io_get_oublock(tsk); |
127 | sig->sum_sched_runtime += tsk->se.sum_exec_runtime; | ||
128 | sig = NULL; /* Marker for below. */ | 128 | sig = NULL; /* Marker for below. */ |
129 | } | 129 | } |
130 | 130 | ||
diff --git a/kernel/fork.c b/kernel/fork.c index 73ad5cda1bcd..da3a155bba0d 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -877,7 +877,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts | |||
877 | sig->nvcsw = sig->nivcsw = sig->cnvcsw = sig->cnivcsw = 0; | 877 | sig->nvcsw = sig->nivcsw = sig->cnvcsw = sig->cnivcsw = 0; |
878 | sig->min_flt = sig->maj_flt = sig->cmin_flt = sig->cmaj_flt = 0; | 878 | sig->min_flt = sig->maj_flt = sig->cmin_flt = sig->cmaj_flt = 0; |
879 | sig->inblock = sig->oublock = sig->cinblock = sig->coublock = 0; | 879 | sig->inblock = sig->oublock = sig->cinblock = sig->coublock = 0; |
880 | sig->sched_time = 0; | 880 | sig->sum_sched_runtime = 0; |
881 | INIT_LIST_HEAD(&sig->cpu_timers[0]); | 881 | INIT_LIST_HEAD(&sig->cpu_timers[0]); |
882 | INIT_LIST_HEAD(&sig->cpu_timers[1]); | 882 | INIT_LIST_HEAD(&sig->cpu_timers[1]); |
883 | INIT_LIST_HEAD(&sig->cpu_timers[2]); | 883 | INIT_LIST_HEAD(&sig->cpu_timers[2]); |
@@ -1040,7 +1040,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1040 | 1040 | ||
1041 | p->utime = cputime_zero; | 1041 | p->utime = cputime_zero; |
1042 | p->stime = cputime_zero; | 1042 | p->stime = cputime_zero; |
1043 | p->sched_time = 0; | 1043 | |
1044 | #ifdef CONFIG_TASK_XACCT | 1044 | #ifdef CONFIG_TASK_XACCT |
1045 | p->rchar = 0; /* I/O counter: bytes read */ | 1045 | p->rchar = 0; /* I/O counter: bytes read */ |
1046 | p->wchar = 0; /* I/O counter: bytes written */ | 1046 | p->wchar = 0; /* I/O counter: bytes written */ |
diff --git a/kernel/sched_stats.h b/kernel/sched_stats.h index cd82c6078904..c63c38f6fa6e 100644 --- a/kernel/sched_stats.h +++ b/kernel/sched_stats.h | |||
@@ -21,7 +21,7 @@ static int show_schedstat(struct seq_file *seq, void *v) | |||
21 | 21 | ||
22 | /* runqueue-specific stats */ | 22 | /* runqueue-specific stats */ |
23 | seq_printf(seq, | 23 | seq_printf(seq, |
24 | "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu", | 24 | "cpu%d %lu %lu %lu %lu %lu %lu %lu %lu %lu %llu %llu %lu", |
25 | cpu, rq->yld_both_empty, | 25 | cpu, rq->yld_both_empty, |
26 | rq->yld_act_empty, rq->yld_exp_empty, rq->yld_cnt, | 26 | rq->yld_act_empty, rq->yld_exp_empty, rq->yld_cnt, |
27 | rq->sched_switch, rq->sched_cnt, rq->sched_goidle, | 27 | rq->sched_switch, rq->sched_cnt, rq->sched_goidle, |