mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: K Prateek Nayak <kprateek.nayak@amd.com>
To: Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Heiko Carstens <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	<linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
	<linux-s390@vger.kernel.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Ben Segall <bsegall@google.com>, Mel Gorman <mgorman@suse.de>,
	Valentin Schneider <vschneid@redhat.com>,
	K Prateek Nayak <kprateek.nayak@amd.com>,
	<thomas.weissschuh@linutronix.de>,
	Li Chen <chenl311@chinatelecom.cn>,
	Bibo Mao <maobibo@loongson.cn>, Mete Durlu <meted@linux.ibm.com>,
	Tobias Huschle <huschle@linux.ibm.com>,
	"Easwar Hariharan" <easwar.hariharan@linux.microsoft.com>,
	Guo Weikang <guoweikang.kernel@gmail.com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Brian Gerst <brgerst@gmail.com>,
	Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com>,
	Swapnil Sapkal <swapnil.sapkal@amd.com>,
	"Yury Norov [NVIDIA]" <yury.norov@gmail.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Andrea Righi <arighi@nvidia.com>,
	Yicong Yang <yangyicong@hisilicon.com>,
	Ricardo Neri <ricardo.neri-calderon@linux.intel.com>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	Vinicius Costa Gomes <vinicius.gomes@intel.com>
Subject: [PATCH v7 4/8] powerpc/smp: Introduce CONFIG_SCHED_MC to guard MC scheduling bits
Date: Tue, 26 Aug 2025 04:13:15 +0000	[thread overview]
Message-ID: <20250826041319.1284-5-kprateek.nayak@amd.com> (raw)
In-Reply-To: <20250826041319.1284-1-kprateek.nayak@amd.com>

PowerPC enables the MC scheduling domain by default on systems with
coregroup support without having a SCHED_MC config in Kconfig.

The scheduler uses CONFIG_SCHED_MC to introduce the MC domain in the
default topology (core) and to optimize the default CPU selection
routine (sched-ext).

Introduce CONFIG_SCHED_MC for powerpc and note that it should be
preferably enabled given the current default behavior. This also ensures
PowerPC is tested during future developments that come to depend on
CONFIG_SCHED_MC.

Signed-off-by: K Prateek Nayak <kprateek.nayak@amd.com>
---
 arch/powerpc/Kconfig           | 9 +++++++++
 arch/powerpc/include/asm/smp.h | 2 ++
 arch/powerpc/kernel/smp.c      | 4 ++++
 3 files changed, 15 insertions(+)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 93402a1d9c9f..e954ab3f635f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -971,6 +971,15 @@ config SCHED_SMT
 	  when dealing with POWER5 cpus at a cost of slightly increased
 	  overhead in some places. If unsure say N here.
 
+config SCHED_MC
+	bool "Multi-Core Cache (MC) scheduler support"
+	depends on PPC64 && SMP
+	default y
+	help
+	  MC scheduler support improves the CPU scheduler's decision making
+	  when dealing with POWER systems that contain multiple Last Level
+	  Cache instances on the same socket. If unsure say Y here.
+
 config PPC_DENORMALISATION
 	bool "PowerPC denormalisation exception handling"
 	depends on PPC_BOOK3S_64
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
index 86de4d0dd0aa..9a320d96e891 100644
--- a/arch/powerpc/include/asm/smp.h
+++ b/arch/powerpc/include/asm/smp.h
@@ -148,7 +148,9 @@ static inline const struct cpumask *cpu_smt_mask(int cpu)
 }
 #endif /* CONFIG_SCHED_SMT */
 
+#ifdef CONFIG_SCHED_MC
 extern const struct cpumask *cpu_coregroup_mask(int cpu);
+#endif
 
 /* Since OpenPIC has only 4 IPIs, we use slightly different message numbers.
  *
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index e623f2864dc4..7f79b853b221 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -1059,6 +1059,7 @@ static bool has_coregroup_support(void)
 	return coregroup_enabled;
 }
 
+#ifdef CONFIG_SCHED_MC
 const struct cpumask *cpu_coregroup_mask(int cpu)
 {
 	if (has_coregroup_support())
@@ -1071,6 +1072,7 @@ static const struct cpumask *cpu_mc_mask(struct sched_domain_topology_level *tl,
 {
 	return cpu_corgrp_mask(cpu);
 }
+#endif
 
 static const struct cpumask *cpu_pkg_mask(struct sched_domain_topology_level *tl, int cpu)
 {
@@ -1729,10 +1731,12 @@ static void __init build_sched_topology(void)
 			SDTL_INIT(shared_cache_mask, powerpc_shared_cache_flags, CACHE);
 	}
 
+#ifdef CONFIG_SCHED_MC
 	if (has_coregroup_support()) {
 		powerpc_topology[i++] =
 			SDTL_INIT(cpu_mc_mask, powerpc_shared_proc_flags, MC);
 	}
+#endif
 
 	powerpc_topology[i++] = SDTL_INIT(cpu_pkg_mask, powerpc_shared_proc_flags, PKG);
 
-- 
2.34.1


  parent reply	other threads:[~2025-08-26  4:16 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-26  4:13 [PATCH v7 0/8] sched/fair: Get rid of sched_domains_curr_level hack for tl->cpumask() K Prateek Nayak
2025-08-26  4:13 ` [PATCH v7 1/8] " K Prateek Nayak
2025-08-28 23:06   ` Tim Chen
2025-08-26  4:13 ` [PATCH v7 2/8] powerpc/smp: Rename cpu_corgroup_* to cpu_corgrp_* K Prateek Nayak
2025-08-26  5:02   ` Christophe Leroy
2025-09-01  3:05     ` K Prateek Nayak
2025-08-26  4:13 ` [PATCH v7 3/8] powerpc/smp: Export cpu_coregroup_mask() K Prateek Nayak
2025-08-26  4:54   ` Christophe Leroy
2025-08-26  4:13 ` K Prateek Nayak [this message]
2025-08-26  4:49   ` [PATCH v7 4/8] powerpc/smp: Introduce CONFIG_SCHED_MC to guard MC scheduling bits Christophe Leroy
2025-08-26  8:07     ` Peter Zijlstra
2025-08-26  9:43       ` Peter Zijlstra
2025-08-26  9:59         ` Peter Zijlstra
2025-08-28 14:43         ` Shrikanth Hegde
2025-09-01  8:35           ` Peter Zijlstra
2025-09-01  8:52             ` Peter Zijlstra
2025-09-03  8:05         ` [tip: sched/core] sched: Unify the SCHED_{SMT,CLUSTER,MC} Kconfig tip-bot2 for Peter Zijlstra
2025-10-14  9:25         ` [PATCH v7 4/8] powerpc/smp: Introduce CONFIG_SCHED_MC to guard MC scheduling bits Geert Uytterhoeven
2025-10-14  9:42           ` Peter Zijlstra
2025-10-14 12:37             ` Geert Uytterhoeven
2025-10-14 14:17               ` Peter Zijlstra
2025-10-14 15:04                 ` Geert Uytterhoeven
2025-08-26  9:27   ` Shrikanth Hegde
2025-09-01  3:57     ` K Prateek Nayak
2025-09-01  4:50     ` K Prateek Nayak
2025-08-26  4:13 ` [PATCH v7 5/8] sched/topology: Unify tl_smt_mask() across core and all arch K Prateek Nayak
2025-08-26  5:13   ` Christophe Leroy
2025-08-26  8:01   ` Peter Zijlstra
2025-08-26  8:11     ` Christophe Leroy
2025-08-26  8:24       ` Peter Zijlstra
2025-08-26  4:13 ` [PATCH v7 6/8] sched/topology: Unify tl_cls_mask() across core and x86 K Prateek Nayak
2025-08-26  5:14   ` Christophe Leroy
2025-08-26  4:13 ` [PATCH v7 7/8] sched/topology: Unify tl_mc_mask() across core and all arch K Prateek Nayak
2025-08-26  5:15   ` Christophe Leroy
2025-08-26  4:13 ` [PATCH v7 8/8] sched/topology: Unify tl_pkg_mask() " K Prateek Nayak
2025-08-26  5:16   ` Christophe Leroy
2025-08-26 10:05 ` [PATCH v7 0/8] sched/fair: Get rid of sched_domains_curr_level hack for tl->cpumask() Shrikanth Hegde
2025-08-26 10:13   ` Peter Zijlstra
2025-08-29  7:53     ` Valentin Schneider
2025-08-29  8:53       ` Shrikanth Hegde
2025-09-01  4:39         ` K Prateek Nayak
2025-09-01  8:58         ` Peter Zijlstra
2025-09-01 17:06           ` Shrikanth Hegde

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250826041319.1284-5-kprateek.nayak@amd.com \
    --to=kprateek.nayak@amd.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=agordeev@linux.ibm.com \
    --cc=arighi@nvidia.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=bsegall@google.com \
    --cc=chenl311@chinatelecom.cn \
    --cc=christophe.leroy@csgroup.eu \
    --cc=dave.hansen@linux.intel.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=easwar.hariharan@linux.microsoft.com \
    --cc=gor@linux.ibm.com \
    --cc=guoweikang.kernel@gmail.com \
    --cc=hca@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=huschle@linux.ibm.com \
    --cc=juri.lelli@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.ibm.com \
    --cc=maobibo@loongson.cn \
    --cc=meted@linux.ibm.com \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=patryk.wlazlyn@linux.intel.com \
    --cc=peterz@infradead.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=ricardo.neri-calderon@linux.intel.com \
    --cc=rostedt@goodmis.org \
    --cc=sudeep.holla@arm.com \
    --cc=svens@linux.ibm.com \
    --cc=swapnil.sapkal@amd.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.weissschuh@linutronix.de \
    --cc=tim.c.chen@linux.intel.com \
    --cc=vincent.guittot@linaro.org \
    --cc=vinicius.gomes@intel.com \
    --cc=vschneid@redhat.com \
    --cc=x86@kernel.org \
    --cc=yangyicong@hisilicon.com \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®