mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 08:20:52 +07:00
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: Ingo Molnar <mingo@elte.hu> Tested-by: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com> Reviewed-by: Balbir Singh <balbir@linux.vnet.ibm.com>
This commit is contained in:
parent
5e8869bb69
commit
08e4570a4a
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user