From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758147AbdELRYk (ORCPT ); Fri, 12 May 2017 13:24:40 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:42543 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758069AbdELRTQ (ORCPT ); Fri, 12 May 2017 13:19:16 -0400 Message-Id: <20170512164416.108843033@infradead.org> User-Agent: quilt/0.63-1 Date: Fri, 12 May 2017 18:44:16 +0200 From: Peter Zijlstra To: mingo@kernel.org, linux-kernel@vger.kernel.org, tj@kernel.org Cc: torvalds@linux-foundation.org, vincent.guittot@linaro.org, efault@gmx.de, pjt@google.com, clm@fb.com, dietmar.eggemann@arm.com, morten.rasmussen@arm.com, bsegall@google.com, yuyang.du@intel.com, peterz@infradead.org Subject: [RFC][PATCH 00/14] sched/fair: A bit of a cgroup/PELT overhaul (again).. Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(-)