mbox series

[v6,0/2] sched/fair: update scale invariance of PELT

Message ID 1541780454-9934-1-git-send-email-vincent.guittot@linaro.org
Headers show
Series sched/fair: update scale invariance of PELT | expand

Message

Vincent Guittot Nov. 9, 2018, 4:20 p.m. UTC
This new version of the scale invariance patchset adds an important change
compare to v3 and before. It still scales the time to reflect the
amount of work that has been done during the elapsed running time but this is
now done at rq level instead of per entity and rt/dl/cfs_rq. The main
advantage is that it is done once per clock update and we don't need to
maintain per sched_avg's stolen_idle_time anymore. This also ensures that
all pelt signals will be always synced for a rq.

The 1st patch makes available rq_of() helper function for pelt.c file and
the 2nd patch implements the new scaling algorithm

Changes since v5:
- Fix running_sum scaling in update_tg_cfs_runnable() raised by Dietmar
- Remove unused cpu parameters raised by Dietmar

Vincent Guittot (2):
  sched/fair: move rq_of helper function
  sched/fair: update scale invariance of PELT

 kernel/sched/core.c     |   1 +
 kernel/sched/deadline.c |   6 +--
 kernel/sched/fair.c     |  56 ++++++++++-------------
 kernel/sched/pelt.c     |  45 ++++++++++---------
 kernel/sched/pelt.h     | 115 ++++++++++++++++++++++++++++++++++++++++++++++--
 kernel/sched/rt.c       |   6 +--
 kernel/sched/sched.h    |  21 ++++++++-
 7 files changed, 187 insertions(+), 63 deletions(-)

-- 
2.7.4

Comments

Dietmar Eggemann Nov. 13, 2018, 2:58 a.m. UTC | #1
On 11/9/18 8:20 AM, Vincent Guittot wrote:
> This new version of the scale invariance patchset adds an important change

> compare to v3 and before. It still scales the time to reflect the

> amount of work that has been done during the elapsed running time but this is

> now done at rq level instead of per entity and rt/dl/cfs_rq. The main

> advantage is that it is done once per clock update and we don't need to

> maintain per sched_avg's stolen_idle_time anymore. This also ensures that

> all pelt signals will be always synced for a rq.

> 

> The 1st patch makes available rq_of() helper function for pelt.c file and

> the 2nd patch implements the new scaling algorithm

> 

> Changes since v5:

> - Fix running_sum scaling in update_tg_cfs_runnable() raised by Dietmar

> - Remove unused cpu parameters raised by Dietmar


I just re-discovered ... the comment for the definition of struct 
sched_avg in include/linux/sched.h also mentioned the different ways how 
we do invariance for load_avg and util_avg.

[...]