Commit 2b46b567 authored by Michael Neuling's avatar Michael Neuling Committed by Paul Mackerras

[POWERPC] Fix possible division by zero in scaled time accounting

If we get no user time and no system time allocated since the last
account_system_vtime, the system to user time ratio estimate can end
up dividing by zero.

This was causing a problem noticed by Balbir Singh.
Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent c443acab
...@@ -241,8 +241,9 @@ void account_system_vtime(struct task_struct *tsk) ...@@ -241,8 +241,9 @@ void account_system_vtime(struct task_struct *tsk)
/* deltascaled includes both user and system time. /* deltascaled includes both user and system time.
* Hence scale it based on the purr ratio to estimate * Hence scale it based on the purr ratio to estimate
* the system time */ * the system time */
deltascaled = deltascaled * get_paca()->system_time / if (get_paca()->user_time)
(get_paca()->system_time + get_paca()->user_time); deltascaled = deltascaled * get_paca()->system_time /
(get_paca()->system_time + get_paca()->user_time);
delta += get_paca()->system_time; delta += get_paca()->system_time;
get_paca()->system_time = 0; get_paca()->system_time = 0;
} }
......
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