From patchwork Wed May 24 05:29:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 100411 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp115393qge; Tue, 23 May 2017 22:30:56 -0700 (PDT) X-Received: by 10.99.113.20 with SMTP id m20mr35548262pgc.120.1495603856665; Tue, 23 May 2017 22:30:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1495603856; cv=none; d=google.com; s=arc-20160816; b=SzyX513G56KX3Mm0l1KOSccsKmMNePcM//bY6vE3EVPLNFzPxidf9SkX5I+aiLU5U1 wUvFLJuMFaPS555hRFMeNQ6ZVOi8etuZxFDrhG2xWkoBnFCiUbkQzwpWVq2xzAYzDx9c DbfYZ4qMxVzIZO5z8meICVvjcZa07fMCyPiS9QSo+C3NvO091V+uLxD16YmH3rgBZEMi Sue5FA2gjUALCdP6MxdLdR+NXMR5D36mjJKcP8zmDbdrtwFRhD7B23ePgBLUjg8VeqZM adzeunYf8inNu+wPiiuvFNRhRRnCwX9A3w4JG5J1D0piLp1tjTpfrGM8dCrPsZR6u16N JI0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=CrHRfAg7ZFyIP3lZSA1spmAraA3VAxvHRhYzWo3opTg=; b=e6PWAruhOQQT8HQ3nyiKItlJOLQh05jsVv5MT0r+N+oQq3ESRriu7EAxuoxPXBRh6C lbU1n0CqBmKjU4Umq3CZ3bwZH70yOGQUQBP/f+ZneuXuubZRFN+2h4imdEkPwfI0/W+m XTcdquinRUq0ZOKZbG7dyHYubaaU/PSQDcNjqYVGbSZB6PMYIBcSZ3fC9xkyzjWwfywv KfKCKCuGr8Xyj1LdFOGMkWdO7SoJL5BJVR2VTRF+F3toaHfsBG/cn+MpXU7UVgCN4scs rtK3r6KY84Z2BYavpoWh01RvZyXjvOpTMl53mZbPzudR31+x2GTXri4JJXkK9ZbA/vIT O3Ow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b68si22954419pfk.341.2017.05.23.22.30.56; Tue, 23 May 2017 22:30:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S969145AbdEXFam (ORCPT + 25 others); Wed, 24 May 2017 01:30:42 -0400 Received: from mail-pf0-f182.google.com ([209.85.192.182]:34159 "EHLO mail-pf0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966142AbdEXFad (ORCPT ); Wed, 24 May 2017 01:30:33 -0400 Received: by mail-pf0-f182.google.com with SMTP id 9so133524229pfj.1 for ; Tue, 23 May 2017 22:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=CrHRfAg7ZFyIP3lZSA1spmAraA3VAxvHRhYzWo3opTg=; b=G/y7X+Uyk/ISSH85Wyr8jyJ5NE02eFD7M00nwlEb62nONEBafjrDcGuhW4uBEEbOxj GQU78a4vFP7JiwhyZMA3BqcMIWI2TKeLepKW+T+3uN8XCXNxjFlDKwtiolEg99GdPn1h cg7diQ4UoDz7RLhnUVq2Zb5AxOT7pyKHk5dA4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=CrHRfAg7ZFyIP3lZSA1spmAraA3VAxvHRhYzWo3opTg=; b=BHDdD6t7xoWDhrKT1iReCkPfATBwj9UaULNKpsB0hDqVICirFGQgUZsp8i0qpytIZV 41kE2H6IoAxh07dw4FbY1sGNOa/hTNE/gXsO/jWq1ZkMKxw2uFXyPELwlr3wVs5OJ5ih VCDor2yGwkqjlKfmVcKmBYE+y0JsqHGJfMd3QTtnxFGMOdMkT3YF2TW2Hne7+trCb23x cuZzPzBqW6uSjmRECBsmN0W8rUMrv02bCTImRhtbCqsSvHM7NAoO4aCtbyxDz35vpqjz 2DKxI/rCRxPW+1eZ6ZspuZo9l/gZUBablBHgUmsnOCeSrx+P9fhzinUUGbgxnVhdH7MP UYpQ== X-Gm-Message-State: AODbwcDjOV02aPjm8KJxBRRwIWN2KaAVRgYSjAMZe2rQf1En5ukKclTx dSs1aLOZ7D11CDN7 X-Received: by 10.98.198.72 with SMTP id m69mr36887812pfg.169.1495603833047; Tue, 23 May 2017 22:30:33 -0700 (PDT) Received: from localhost ([122.167.143.58]) by smtp.gmail.com with ESMTPSA id j82sm1179248pfj.69.2017.05.23.22.30.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 May 2017 22:30:32 -0700 (PDT) From: Viresh Kumar To: Ingo Molnar , Peter Zijlstra Cc: Viresh Kumar , linaro-kernel@lists.linaro.org, linux-kernel@vger.kernel.org, Vincent Guittot Subject: [PATCH 4/6] sched: fair: Avoid checking cfs_rq->nr_running twice Date: Wed, 24 May 2017 10:59:55 +0530 Message-Id: <000903ab3df3350943d3271c53615893a230dc95.1495603536.git.viresh.kumar@linaro.org> X-Mailer: git-send-email 2.13.0.70.g6367777092d9 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Rearrange pick_next_task_fair() a bit to avoid checking cfs_rq->nr_running twice for the case where FAIR_GROUP_SCHED is enabled and the previous task doesn't belong to the fair class. Signed-off-by: Viresh Kumar --- kernel/sched/fair.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) -- 2.13.0.70.g6367777092d9 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index fe03efd3880a..e519f6c03fe9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6267,10 +6267,10 @@ pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf int new_tasks; again: -#ifdef CONFIG_FAIR_GROUP_SCHED if (!cfs_rq->nr_running) goto idle; +#ifdef CONFIG_FAIR_GROUP_SCHED if (prev->sched_class != &fair_sched_class) goto simple; @@ -6300,11 +6300,17 @@ pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf /* * This call to check_cfs_rq_runtime() will do the * throttle and dequeue its entity in the parent(s). - * Therefore the 'simple' nr_running test will indeed + * Therefore the nr_running test will indeed * be correct. */ - if (unlikely(check_cfs_rq_runtime(cfs_rq))) + if (unlikely(check_cfs_rq_runtime(cfs_rq))) { + cfs_rq = &rq->cfs; + + if (!cfs_rq->nr_running) + goto idle; + goto simple; + } } se = pick_next_entity(cfs_rq, curr); @@ -6344,12 +6350,8 @@ pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf return p; simple: - cfs_rq = &rq->cfs; #endif - if (!cfs_rq->nr_running) - goto idle; - put_prev_task(rq, prev); do {