Received: by 10.223.185.116 with SMTP id b49csp378533wrg; Fri, 16 Feb 2018 00:04:58 -0800 (PST) X-Google-Smtp-Source: AH8x224uSrdmyOk1pXUHhO+kc1x5qMTdf8rb45RduYW1f539vb6cnWVr1vo66g8+YIU8lKJ28pKn X-Received: by 10.98.107.130 with SMTP id g124mr5238260pfc.225.1518768298861; Fri, 16 Feb 2018 00:04:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518768298; cv=none; d=google.com; s=arc-20160816; b=sMgEW2etry6u7dGUneymSZ0gThFddpM5FgQicKglR48ImaIXELcKOA/3kuS+BYa2vq aeo98nuw65OIP5/QDhcKtovYgKoW7CM6g6D7QbZk0ZfT/wrditHZL7ohX4kAekxhJuUt zeJjpC+vIom0BoLruS3qqCgAnkqzNwBUdcjDJ7qfFuobddZJkcqLN0FYwhMJg8iv3AWq LqS6EbohcrijgIVjRD6ixZYXDLP/ZAuQ6MwTBueXg4RuIZb6empIeNzpZxy+uy63O8M0 gOtkzIgDYLvKAh6V1XB8sJZ6AYgn3OmPaCjvwMh7aWw7eq+ZA8R19feucxlwY6hXLHF9 PgAg== 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:message-id:date :subject:cc:to:from:arc-authentication-results; bh=1v2Ua3TIeFUTolLIFiUILL/13dlqzc+OmXPD6mvdA90=; b=Q8sV9dQWfA7qoiPhctyi6e1FjH+invttfw9qUQ4O5XeOyV7Y29YFMJM99rt0FdyCM+ vFGIt/JjzEDwQwBNzTPHmgLxOhst/PcvEpKosv4E09zRyCcjCXaFIN7r7tz679FHL0oa dui0UmpozrgABpXFqmoWWzT9yiCCN1jbHl1G8ldlDaGRRqUPERMbRy91ZzYjFt2S7Rn8 LYyj/QxLbDHzqvzoGN5PY/Fm/AS4KJKUYBVlO4m4SSyk1hB/O3Dg+mgj7ioadVr/kG52 hB4vdhY0KrboyacMQYeqE9MWXOBYs2jkOnY7bW3/IkcLAlZIMng8wetxbzR8rjEDADV0 i9Uw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d30-v6si2808398pld.452.2018.02.16.00.04.32; Fri, 16 Feb 2018 00:04:58 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1425721AbeBOQVf (ORCPT + 99 others); Thu, 15 Feb 2018 11:21:35 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:57130 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1425708AbeBOQVe (ORCPT ); Thu, 15 Feb 2018 11:21:34 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C95E8165D; Thu, 15 Feb 2018 08:21:33 -0800 (PST) Received: from e105550-lin.cambridge.arm.com (e105550-lin.cambridge.arm.com [10.1.211.30]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 738903F24D; Thu, 15 Feb 2018 08:21:32 -0800 (PST) From: Morten Rasmussen To: peterz@infradead.org, mingo@redhat.com Cc: valentin.schneider@arm.com, dietmar.eggemann@arm.com, vincent.guittot@linaro.org, linux-kernel@vger.kernel.org, Morten Rasmussen Subject: [PATCH 6/7] sched: Rename root_domain->overload to should_idle_balance Date: Thu, 15 Feb 2018 16:20:53 +0000 Message-Id: <1518711654-23503-7-git-send-email-morten.rasmussen@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518711654-23503-1-git-send-email-morten.rasmussen@arm.com> References: <1518711654-23503-1-git-send-email-morten.rasmussen@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Valentin Schneider The name "overload" is not very explicit, especially since it doesn't use any concept of "load" coming from load-tracking signals. For now it simply tracks if any of the CPUs in root_domain has more than one runnable task, and is then used to decide whether idle balance should be performed. As such, this commit changes that flag's name to 'should_idle_balance', which makes its role more explicit. cc: Ingo Molnar cc: Peter Zijlstra Suggested-by: Patrick Bellasi Signed-off-by: Valentin Schneider Signed-off-by: Morten Rasmussen --- kernel/sched/fair.c | 18 +++++++++--------- kernel/sched/sched.h | 12 ++++++++---- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 1439b784b1f0..2d2302b7b584 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7830,12 +7830,12 @@ group_type group_classify(struct sched_group *group, * @load_idx: Load index of sched_domain of this_cpu for load calc. * @local_group: Does group contain this_cpu. * @sgs: variable to hold the statistics for this group. - * @overload: Indicate more than one runnable task for any CPU. + * @should_idle_balance: Indicate groups could need idle balance. */ static inline void update_sg_lb_stats(struct lb_env *env, struct sched_group *group, int load_idx, int local_group, struct sg_lb_stats *sgs, - bool *overload) + bool *should_idle_balance) { unsigned long load; int i, nr_running; @@ -7857,7 +7857,7 @@ static inline void update_sg_lb_stats(struct lb_env *env, nr_running = rq->nr_running; if (nr_running > 1) - *overload = true; + *should_idle_balance = true; #ifdef CONFIG_NUMA_BALANCING sgs->nr_numa_running += rq->nr_numa_running; @@ -8016,7 +8016,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd struct sg_lb_stats *local = &sds->local_stat; struct sg_lb_stats tmp_sgs; int load_idx, prefer_sibling = 0; - bool overload = false; + bool should_idle_balance = false; if (child && child->flags & SD_PREFER_SIBLING) prefer_sibling = 1; @@ -8038,7 +8038,7 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd } update_sg_lb_stats(env, sg, load_idx, local_group, sgs, - &overload); + &should_idle_balance); if (local_group) goto next_group; @@ -8078,9 +8078,9 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd env->fbq_type = fbq_classify_group(&sds->busiest_stat); if (!env->sd->parent) { - /* update overload indicator if we are at root domain */ - if (env->dst_rq->rd->overload != overload) - env->dst_rq->rd->overload = overload; + /* update idle_balance indicator if we are at root domain */ + if (env->dst_rq->rd->should_idle_balance != should_idle_balance) + env->dst_rq->rd->should_idle_balance = should_idle_balance; } } @@ -8878,7 +8878,7 @@ static int idle_balance(struct rq *this_rq, struct rq_flags *rf) rq_unpin_lock(this_rq, rf); if (this_rq->avg_idle < sysctl_sched_migration_cost || - !this_rq->rd->overload) { + !this_rq->rd->should_idle_balance) { rcu_read_lock(); sd = rcu_dereference_check_sched_domain(this_rq->sd); if (sd) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 7d324b706e67..4215438667e5 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -650,8 +650,12 @@ struct root_domain { cpumask_var_t span; cpumask_var_t online; - /* Indicate more than one runnable task for any CPU */ - bool overload; + /* + * Indicate whether the idle balance can be used to solve + * imbalance within the root domain. + * e.g. There is more than one runnable task for any CPU + */ + bool should_idle_balance; /* * The bit corresponding to a CPU gets set here if such CPU has more @@ -1610,8 +1614,8 @@ static inline void add_nr_running(struct rq *rq, unsigned count) if (prev_nr < 2 && rq->nr_running >= 2) { #ifdef CONFIG_SMP - if (!rq->rd->overload) - rq->rd->overload = true; + if (!rq->rd->should_idle_balance) + rq->rd->should_idle_balance = true; #endif } -- 2.7.4