On Mon, Mar 30, 2015 at 12:06:32PM +0100, Peter Zijlstra wrote: > 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.
I see. The group_classify() should take care of it in all cases of balancing across clusters. You would be iterating over all cpus in the other cluster running rebalance_domains() if the balancer cpu happens to be the last one in the little cluster though. However, within the cluster (in case you have 2 or more nohz-idle cpus) you still take a double hit. No? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/