From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752699AbbC0FkR (ORCPT ); Fri, 27 Mar 2015 01:40:17 -0400 Received: from e23smtp02.au.ibm.com ([202.81.31.144]:51852 "EHLO e23smtp02.au.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751200AbbC0FkO (ORCPT ); Fri, 27 Mar 2015 01:40:14 -0400 Date: Fri, 27 Mar 2015 11:09:07 +0530 From: Srikar Dronamraju To: Jason Low Cc: Wanpeng Li , Preeti U Murthy , peterz@infradead.org, mingo@kernel.org, riel@redhat.com, daniel.lezcano@linaro.org, vincent.guittot@linaro.org, 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, morten.rasmussen@arm.com Subject: Re: [PATCH V2] sched: Improve load balancing in the presence of idle CPUs Message-ID: <20150327053907.GB6895@linux.vnet.ibm.com> Reply-To: Srikar Dronamraju References: <20150326130014.21532.17158.stgit@preeti.in.ibm.com> <20150327021201.GA4491@kernel> <1427432841.2788.10.camel@j-VirtualBox> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <1427432841.2788.10.camel@j-VirtualBox> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15032705-0005-0000-0000-0000018809D1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Jason Low [2015-03-26 22:07:21]: > On Fri, 2015-03-27 at 10:12 +0800, Wanpeng Li wrote: > > Hi Preeti, > > On Thu, Mar 26, 2015 at 06:32:44PM +0530, Preeti U Murthy wrote: > > > > > >1. An ILB CPU was chosen from the first numa domain to trigger nohz idle > > >load balancing [Given the experiment, upto 6 CPUs per core could be > > >potentially idle in this domain.] > > > > > >2. However the ILB CPU would call load_balance() on itself before > > >initiating nohz idle load balancing. > > > > > >3. Given cores are SMT8, the ILB CPU had enough opportunities to pull > > >tasks from its sibling cores to even out load. > > > > > >4. Now that the ILB CPU was no longer idle, it would abort nohz idle > > >load balancing > > > > I don't see abort nohz idle load balancing when ILB CPU was no longer idle > > in nohz_idle_balance(), could you explain more in details? > > Hi Wanpeng, > > In nohz_idle_balance(), there is a check for need_resched() so if the > cpu has something to run, it should exit nohz_idle_balance(), which may > cause it to not do the idle balancing on the other CPUs. > Yes, the need_resched() in nohz_idle_balance() would exit the nohz_idle_balance if it has something to run. However I wonder if we should move the need_resched check out of the for loop. i.e the need_resched check should probably be there with the idle check. With the current code when the ilb cpus are not free: - We would be updating the nohz.next_balance even through we havent done any load balance. - We might iterate thro the nohz.idle_cpus_mask()s to find balance_cpus. -- Thanks and Regards Srikar Dronamraju