diff options
Diffstat (limited to 'kernel/delayacct.c')
-rw-r--r-- | kernel/delayacct.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/delayacct.c b/kernel/delayacct.c index 81e697829633..10e43fd8b721 100644 --- a/kernel/delayacct.c +++ b/kernel/delayacct.c | |||
@@ -115,11 +115,17 @@ int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk) | |||
115 | tmp += timespec_to_ns(&ts); | 115 | tmp += timespec_to_ns(&ts); |
116 | d->cpu_run_real_total = (tmp < (s64)d->cpu_run_real_total) ? 0 : tmp; | 116 | d->cpu_run_real_total = (tmp < (s64)d->cpu_run_real_total) ? 0 : tmp; |
117 | 117 | ||
118 | tmp = (s64)d->cpu_scaled_run_real_total; | ||
119 | cputime_to_timespec(tsk->utimescaled + tsk->stimescaled, &ts); | ||
120 | tmp += timespec_to_ns(&ts); | ||
121 | d->cpu_scaled_run_real_total = | ||
122 | (tmp < (s64)d->cpu_scaled_run_real_total) ? 0 : tmp; | ||
123 | |||
118 | /* | 124 | /* |
119 | * No locking available for sched_info (and too expensive to add one) | 125 | * No locking available for sched_info (and too expensive to add one) |
120 | * Mitigate by taking snapshot of values | 126 | * Mitigate by taking snapshot of values |
121 | */ | 127 | */ |
122 | t1 = tsk->sched_info.pcnt; | 128 | t1 = tsk->sched_info.pcount; |
123 | t2 = tsk->sched_info.run_delay; | 129 | t2 = tsk->sched_info.run_delay; |
124 | t3 = tsk->sched_info.cpu_time; | 130 | t3 = tsk->sched_info.cpu_time; |
125 | 131 | ||