[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170512164416.108843033@infradead.org>
Date: Fri, 12 May 2017 18:44:16 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: mingo@...nel.org, linux-kernel@...r.kernel.org, tj@...nel.org
Cc: torvalds@...ux-foundation.org, vincent.guittot@...aro.org,
efault@....de, pjt@...gle.com, clm@...com,
dietmar.eggemann@....com, morten.rasmussen@....com,
bsegall@...gle.com, yuyang.du@...el.com, peterz@...radead.org
Subject: [RFC][PATCH 00/14] sched/fair: A bit of a cgroup/PELT overhaul (again)..
Hi all,
So after staring at all that PELT stuff and working my way through it again:
https://lkml.kernel.org/r/20170505154117.6zldxuki2fgyo53n@hirez.programming.kicks-ass.net
I started doing some patches to fix some of the identified broken.
So here are a few too many patches that do:
- fix 'reweight_entity' to instantly propagate the change in se->load.weight.
- rewrite/fix the propagate on migrate (attach/detach)
- introduce the hierarchical runnable_load_avg, as proposed by Tejun.
- synchronous detach for runnable migrates
- aligns the PELT windows between a cfs_rq and all its se's
- deals with random fallout from the above (some of this needs folding back
and reordering, but its all well past the point I should post this anyway).
IIRC pjt recently mentioned the reweight_entity thing, and I have very vague
memories he once talked about the window alignment thing -- which I only
remembered after (very painfully) having discovered I really needed that.
In any case, the reason I did the reweight_entity thing first, is because I
feel that is the right place to also propagate the hierarchical runnable_load,
as that is the natural place where a group's cfs_rq is coupled to its
sched_entity.
And the hierachical runnable_load needs that coupling. TJ did it by hijacking
the attach/detach migrate code, which I didn't much like. In any case, all
that got me looking at said attach/detach migrate code and find pain. So I went
and fixed that too.
Much thanks to Vincent and Dietmar for poking at early versions and reporting
failure and comments.
This still hasn't had a lot of testing, but its not obviously insane anymore
for the few tests we did do on it. Thread carefully though, a lot of code changed.
This can also be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/experimental
(my git tree is unsable and gets rebased a _lot_)
---
include/linux/sched.h | 3
kernel/sched/debug.c | 18 -
kernel/sched/fair.c | 811 +++++++++++++++++++++++++++++++-------------------
kernel/sched/sched.h | 19 -
4 files changed, 547 insertions(+), 304 deletions(-)
Powered by blists - more mailing lists