Messages in this thread | | | From | Vincent Guittot <> | Subject | [PATCH 0/2] sched/cfs: make util/load_avg stable | Date | Wed, 19 Apr 2017 18:44:15 +0200 |
| |
In the current implementation of load/util_avg, we assume that the ongoing time segment has fully elapsed and util/load_sum is divided by LOAD_AVG_MAX, even if part of the time segment still remains to run . As a consequence, this remaining part is considered as idle time and generates unexpected variations of util_avg of a busy CPU in the range ]1002..1024[ whereas util_avg should stay at 1023.
The 1st patch implements Peter's proposal to remove the contribution of the current time segment when computing the util/load_avg. The 2nd one keeps using the current segment but update the max value instead. Both solutions make load/util_avg being stable with the advantage of using the most up to date value for the 2nd patch. I have split it into 2 patches to show the 2 versions but if the 2nd patch looks ok, we should probably squashed them into one.
Vincent Guittot (2): sched/cfs: make util/load_avg more stable sched/cfs: take into account current segment
kernel/sched/fair.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
-- 2.7.4
| |