Message ID | 1492619370-29246-1-git-send-email-vincent.guittot@linaro.org |
---|---|
Headers | show |
Series | sched/cfs: make util/load_avg stable | expand |
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