Commit 08e4570a authored by Ingo Molnar's avatar Ingo Molnar

sched: fix prev_stime calculation

Srivatsa Vaddagiri noticed occasionally incorrect CPU usage
values in top and tracked it down to stime going below 0 in
task_stime(). Negative values are possible there due to the
sampled nature of stime/utime.

Fix suggested by Balbir Singh.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Tested-by: default avatarSrivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
Reviewed-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
parent 5e8869bb
...@@ -374,7 +374,9 @@ static cputime_t task_stime(struct task_struct *p) ...@@ -374,7 +374,9 @@ static cputime_t task_stime(struct task_struct *p)
stime = nsec_to_clock_t(p->se.sum_exec_runtime) - stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
cputime_to_clock_t(task_utime(p)); cputime_to_clock_t(task_utime(p));
p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime)); if (stime >= 0)
p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
return p->prev_stime; return p->prev_stime;
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment