[PATCH -v2 00/18] sched/fair: A bit of a cgroup/PELT overhaul
From: Peter Zijlstra
Date: Fri Sep 01 2017 - 09:37:44 EST
Hi all,
New this time is that Josef identified and fixed a problem he had with it. He
also provided many compile fixes. Meanwhile I managed to reflow the patches so
that the whole now looks like a normal patch series.
Other than that, it should still very much be what it was before.. From the
previous announce:
---
So after staring at all that PELT stuff and working my way through it again:
https://lkml.kernel.org/r/20170505154117.6zldxuki2fgyo53n@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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.
---
Still very many thanks to Vincent, Dietmar and Josef for poking at these patches.
If nothing untowards happens, I plan to get them merged after the immenent
merge window.