From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752491AbbC3LGu (ORCPT ); Mon, 30 Mar 2015 07:06:50 -0400 Received: from casper.infradead.org ([85.118.1.10]:60287 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750938AbbC3LGs (ORCPT ); Mon, 30 Mar 2015 07:06:48 -0400 Date: Mon, 30 Mar 2015 13:06:32 +0200 From: Peter Zijlstra To: Morten Rasmussen Cc: Preeti U Murthy , "mingo@kernel.org" , "riel@redhat.com" , "daniel.lezcano@linaro.org" , "vincent.guittot@linaro.org" , "srikar@linux.vnet.ibm.com" , "pjt@google.com" , "benh@kernel.crashing.org" , "efault@gmx.de" , "linux-kernel@vger.kernel.org" , "iamjoonsoo.kim@lge.com" , "svaidy@linux.vnet.ibm.com" , "tim.c.chen@linux.intel.com" , "jason.low2@hp.com" Subject: Re: [PATCH V2] sched: Improve load balancing in the presence of idle CPUs Message-ID: <20150330110632.GT23123@twins.programming.kicks-ass.net> References: <20150326130014.21532.17158.stgit@preeti.in.ibm.com> <20150327143839.GO18994@e105550-lin.cambridge.arm.com> <55158966.4050300@linux.vnet.ibm.com> <20150327175651.GR18994@e105550-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150327175651.GR18994@e105550-lin.cambridge.arm.com> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 27, 2015 at 05:56:51PM +0000, Morten Rasmussen wrote: > I agree that it is hard to predict how many additional cpus you need, > but I don't think you necessarily need that information as long as you > start by filling up the cpu that was kicked to do the > nohz_idle_balance() first. > Reducing unnecessary wakeups is quite important for energy consumption > and something a lot of effort is put into. You really don't want to wake > up another cluster/package unnecessarily just because there was only one > nohz-idle cpu left in the previous one which could have handled the > additional load. It gets even worse if the other cluster is less > energy-efficient (big.LITTLE). So the only way to get tasks to cross your cluster is by balancing that domain. At this point we'll compute sg stats for either group (=cluster). The only thing we need to ensure is that it doesn't view the small cluster as overloaded (as long as it really isn't of course), as long as its not viewed as overloaded it will not pull tasks from it into the big cluster, no matter how many ILBs we run before the ILB duty cpu's rebalance_domains() call. I'm really not seeing the problem here.