[v9,0/3] sched/fair: update scale invariance of PELT

Message ID 1548257214-13745-1-git-send-email-vincent.guittot@linaro.org
Headers show
  • sched/fair: update scale invariance of PELT
Related show


Vincent Guittot Jan. 23, 2019, 3:26 p.m.
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.

Changes since v8:
- add lockdep and clock updated check in rq_clock_pelt()

Vincent Guittot (3):
  sched/fair: move rq_of helper function
  sched/fair: update scale invariance of PELT
  sched/pelt: skip updating util_est when utilization is higher than
    cpu's capacity

 include/linux/sched.h   |  23 +++-------
 kernel/sched/core.c     |   1 +
 kernel/sched/deadline.c |   6 +--
 kernel/sched/fair.c     |  72 ++++++++++++++----------------
 kernel/sched/pelt.c     |  45 ++++++++++---------
 kernel/sched/pelt.h     | 114 ++++++++++++++++++++++++++++++++++++++++++++++--
 kernel/sched/rt.c       |   6 +--
 kernel/sched/sched.h    |  28 +++++++++++-
 8 files changed, 209 insertions(+), 86 deletions(-)