Commit b86ccca4 authored by Martin Schwidefsky's avatar Martin Schwidefsky

[S390] fix idle time accounting

The steal time is calculated by subtracting the time the virtual cpu
has been running on a physical cpu from the wall clock time. To make
that work all wall time needs to be added to the steal time field first
before the virtual cpu time is subtracted.

The time between the last clock update and the load of the enabled wait
psw needs to be added to the steal_time field as well to make the sum
over all cpu accounting numbers match the wall clock.
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 88e01285
...@@ -134,6 +134,8 @@ void vtime_start_cpu(void) ...@@ -134,6 +134,8 @@ void vtime_start_cpu(void)
/* Account time spent with enabled wait psw loaded as idle time. */ /* Account time spent with enabled wait psw loaded as idle time. */
idle_time = S390_lowcore.int_clock - idle->idle_enter; idle_time = S390_lowcore.int_clock - idle->idle_enter;
account_idle_time(idle_time); account_idle_time(idle_time);
S390_lowcore.steal_timer +=
idle->idle_enter - S390_lowcore.last_update_clock;
S390_lowcore.last_update_clock = S390_lowcore.int_clock; S390_lowcore.last_update_clock = S390_lowcore.int_clock;
/* Account system time spent going idle. */ /* Account system time spent going idle. */
......
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