• Balbir Singh's avatar
    sched: fix process time monotonicity · 49048622
    Balbir Singh authored
    Spencer reported a problem where utime and stime were going negative despite
    the fixes in commit b27f03d4. The suspected
    reason for the problem is that signal_struct maintains it's own utime and
    stime (of exited tasks), these are not updated using the new task_utime()
    routine, hence sig->utime can go backwards and cause the same problem
    to occur (sig->utime, adds tsk->utime and not task_utime()). This patch
    fixes the problem
    
    TODO: using max(task->prev_utime, derived utime) works for now, but a more
    generic solution is to implement cputime_max() and use the cputime_gt()
    function for comparison.
    
    Reported-by: spencer@bluehost.com
    Signed-off-by: default avatarBalbir Singh <balbir@linux.vnet.ibm.com>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    49048622
exit.c 45.2 KB