mbox series

[0/2] sched/cfs: make util/load_avg stable

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

Message

Vincent Guittot April 19, 2017, 4:29 p.m. UTC
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

Comments

Vincent Guittot April 19, 2017, 4:44 p.m. UTC | #1
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