Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757696Ab3HOSY0 (ORCPT ); Thu, 15 Aug 2013 14:24:26 -0400 Received: from mail-qc0-f181.google.com ([209.85.216.181]:40901 "EHLO mail-qc0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753173Ab3HOSYZ (ORCPT ); Thu, 15 Aug 2013 14:24:25 -0400 MIME-Version: 1.0 In-Reply-To: <20130815173953.GU24092@twins.programming.kicks-ass.net> References: <20130812144309.GK27162@twins.programming.kicks-ass.net> <20130813073842.GP27162@twins.programming.kicks-ass.net> <20130815173953.GU24092@twins.programming.kicks-ass.net> From: Paul Turner Date: Thu, 15 Aug 2013 11:23:53 -0700 Message-ID: Subject: Re: false nr_running check in load balance? To: Peter Zijlstra Cc: Lei Wen , LKML , Ingo Molnar , Lei Wen Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1555 Lines: 34 On Thu, Aug 15, 2013 at 10:39 AM, Peter Zijlstra wrote: > On Tue, Aug 13, 2013 at 01:08:17AM -0700, Paul Turner wrote: >> On Tue, Aug 13, 2013 at 12:38 AM, Peter Zijlstra wrote: >> > On Tue, Aug 13, 2013 at 12:45:12PM +0800, Lei Wen wrote: >> >> > Not quite right; I think you need busiest->cfs.h_nr_running. >> >> > cfs.nr_running is the number of entries running in this 'group'. If >> >> > you've got nested groups like: >> >> > >> >> > 'root' >> >> > \ >> >> > 'A' >> >> > / \ >> >> > t1 t2 >> >> > >> >> > root.nr_running := 1 'A', even though you've got multiple running tasks. > > One thing though; doesn't h_nr_running over count the number of tasks? > That is, doesn't it count the runnable entities so the above case would > give root.h_nr_running := 3, where we would only have 2 runnable tasks. > > Double check this and be careful when doing the conversion. This should be ok: it's accounted like rq->nr_running, not cfs_rq->nr_running. Specifically: both only account tasks; group-entities do not contribute. The fact that this distinction exists, despite the very similar names is unfortunate. We could consider renaming to h_nr_{running_,}tasks for clarity. The same applies to rq->nr_running, although that would involve more churn. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/