Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp377520imm; Mon, 21 May 2018 07:28:56 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrKjMnnLDG52v2BkzUjNB1mwkae+aK/FGD0BEkxg9zBeIqFvabcnq+Sj7V4Y9FzpERjOA39 X-Received: by 2002:a17:902:a585:: with SMTP id az5-v6mr20567444plb.79.1526912936093; Mon, 21 May 2018 07:28:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526912936; cv=none; d=google.com; s=arc-20160816; b=Y/6T2x88NG8dWgHF5c/k7IlIGZTRIaxRTfvmIEzuMxUOy76JPkLfBGnL/2B9rvDVtG r/Ze/Gy58R6W0kKqXlYNJKC74emkRuJ26Ivz1DqhiuklhVj6pGWg/r13+1QXLlblErDm +bZkBpujncOQ8V1imp6e8uf6NDPbGc81JiMFECCWXFJiV0rpgmTFwrjctTINwXqwEb82 T4C3fJU4hwuaBys1yyLqeS6e5M5pkx9O5T17za4X3SfB0solj4DQjAMerH1bjIajQxOp PCIoNGxrBq8+fJbVXCSz5k03KYCwcJcOjGJJXihcqFVLi3dA6DzAZ6p03nXIuet4f/lc Tm6w== 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=UgR7efgPdAsS+k8q8FrDlu7BpAqiSM29ZkOvkN6sOKI=; b=Gk3jffXpiTTkhKSy4WNxv7FpRD8wScSUJD8Ap/0nmExJJH0sUtP5aACF9IV+6bzkin 11APmztm1lsR5kDk+pecUanNUtpRoxCQKVP6lu2KOF+cpabRSTfCpVnPFJQKaVoPMgdD 1fSs7KtDPV13pjFGCIft2Nmj494/yN1/0So+4hANstzgzNEBH4rzJpq55SkDDw9ll47Q VNCDwtSBUNnL2ohDkzPXnucCFsU4nz7TL3uRYYV7Jp2JldWwKosbBQ7gIgkLhtGk4KXv VysiKe5pyHibOjv7/j3ZcvdEEBtnO7D/0J0QPULuD95he1zEOwNxqxSK/bYwyJLXh919 6ClA== 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 m1-v6si14183271pfe.79.2018.05.21.07.28.41; Mon, 21 May 2018 07:28: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; 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 S1753119AbeEUO0x (ORCPT + 99 others); Mon, 21 May 2018 10:26:53 -0400 Received: from foss.arm.com ([217.140.101.70]:51080 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753017AbeEUOZ5 (ORCPT ); Mon, 21 May 2018 10:25:57 -0400 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 7AB8B165C; Mon, 21 May 2018 07:25:57 -0700 (PDT) Received: from e108498-lin.cambridge.arm.com (e108498-lin.cambridge.arm.com [10.1.210.84]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6444D3F577; Mon, 21 May 2018 07:25:53 -0700 (PDT) From: Quentin Perret To: peterz@infradead.org, rjw@rjwysocki.net, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Cc: mingo@redhat.com, dietmar.eggemann@arm.com, morten.rasmussen@arm.com, chris.redpath@arm.com, patrick.bellasi@arm.com, valentin.schneider@arm.com, vincent.guittot@linaro.org, thara.gopinath@linaro.org, viresh.kumar@linaro.org, tkjos@google.com, joelaf@google.com, smuckle@google.com, adharmap@quicinc.com, skannan@quicinc.com, pkondeti@codeaurora.org, juri.lelli@redhat.com, edubezval@gmail.com, srinivas.pandruvada@linux.intel.com, currojerez@riseup.net, javi.merino@kernel.org, quentin.perret@arm.com Subject: [RFC PATCH v3 08/10] sched: Lowest energy aware balancing sched_domain level pointer Date: Mon, 21 May 2018 15:25:03 +0100 Message-Id: <20180521142505.6522-9-quentin.perret@arm.com> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180521142505.6522-1-quentin.perret@arm.com> References: <20180521142505.6522-1-quentin.perret@arm.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add another member to the family of per-cpu sched_domain shortcut pointers. This one, sd_ea, points to the lowest level at which energy aware scheduling should be used. Generally speaking, the largest opportunity to save energy via scheduling comes from a smarter exploitation of heterogeneous platforms (i.e. big.LITTLE). Consequently, the sd_ea shortcut is wired to the lowest scheduling domain at which the SD_ASYM_CPUCAPACITY flag is set. For example, it is possible to apply energy-aware scheduling within a socket on a multi-socket system, as long as each socket has an asymmetric topology. Cross-sockets wake-up balancing will only happen when the system is over-utilized, or this_cpu and prev_cpu are in different sockets. cc: Ingo Molnar cc: Peter Zijlstra Suggested-by: Morten Rasmussen Signed-off-by: Quentin Perret --- kernel/sched/sched.h | 1 + kernel/sched/topology.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 0dd895554f78..31535198f545 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1151,6 +1151,7 @@ DECLARE_PER_CPU(int, sd_llc_id); DECLARE_PER_CPU(struct sched_domain_shared *, sd_llc_shared); DECLARE_PER_CPU(struct sched_domain *, sd_numa); DECLARE_PER_CPU(struct sched_domain *, sd_asym); +DECLARE_PER_CPU(struct sched_domain *, sd_ea); struct sched_group_capacity { atomic_t ref; diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 3e22c798f18d..8e7ee37771bb 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -398,6 +398,7 @@ DEFINE_PER_CPU(int, sd_llc_id); DEFINE_PER_CPU(struct sched_domain_shared *, sd_llc_shared); DEFINE_PER_CPU(struct sched_domain *, sd_numa); DEFINE_PER_CPU(struct sched_domain *, sd_asym); +DEFINE_PER_CPU(struct sched_domain *, sd_ea); static void update_top_cache_domain(int cpu) { @@ -423,6 +424,9 @@ static void update_top_cache_domain(int cpu) sd = highest_flag_domain(cpu, SD_ASYM_PACKING); rcu_assign_pointer(per_cpu(sd_asym, cpu), sd); + + sd = lowest_flag_domain(cpu, SD_ASYM_CPUCAPACITY); + rcu_assign_pointer(per_cpu(sd_ea, cpu), sd); } /* -- 2.17.0