mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
sched: Unify the SCHED_{SMT,CLUSTER,MC} Kconfig
Like many Kconfig symbols, SCHED_{SMT,CLUSTER,MC} are duplicated
across arch/*/Kconfig. Try and clean up a little.
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Tested-by: Shrikanth Hegde <sshegde@linux.ibm.com> # powerpc
Link: https://lkml.kernel.org/r/20250826094358.GG3245006@noisy.programming.kicks-ass.net
This commit is contained in:
38
arch/Kconfig
38
arch/Kconfig
@@ -41,6 +41,44 @@ config HOTPLUG_SMT
|
||||
config SMT_NUM_THREADS_DYNAMIC
|
||||
bool
|
||||
|
||||
config ARCH_SUPPORTS_SCHED_SMT
|
||||
bool
|
||||
|
||||
config ARCH_SUPPORTS_SCHED_CLUSTER
|
||||
bool
|
||||
|
||||
config ARCH_SUPPORTS_SCHED_MC
|
||||
bool
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT (Hyperthreading) scheduler support"
|
||||
depends on ARCH_SUPPORTS_SCHED_SMT
|
||||
default y
|
||||
help
|
||||
Improves the CPU scheduler's decision making when dealing with
|
||||
MultiThreading at a cost of slightly increased overhead in some
|
||||
places. If unsure say N here.
|
||||
|
||||
config SCHED_CLUSTER
|
||||
bool "Cluster scheduler support"
|
||||
depends on ARCH_SUPPORTS_SCHED_CLUSTER
|
||||
default y
|
||||
help
|
||||
Cluster scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with machines that have clusters of CPUs.
|
||||
Cluster usually means a couple of CPUs which are placed closely
|
||||
by sharing mid-level caches, last-level cache tags or internal
|
||||
busses.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-Core Cache (MC) scheduler support"
|
||||
depends on ARCH_SUPPORTS_SCHED_MC
|
||||
default y
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
# Selected by HOTPLUG_CORE_SYNC_DEAD or HOTPLUG_CORE_SYNC_FULL
|
||||
config HOTPLUG_CORE_SYNC
|
||||
bool
|
||||
|
||||
@@ -941,28 +941,14 @@ config IRQSTACKS
|
||||
config ARM_CPU_TOPOLOGY
|
||||
bool "Support cpu topology definition"
|
||||
depends on SMP && CPU_V7
|
||||
select ARCH_SUPPORTS_SCHED_MC
|
||||
select ARCH_SUPPORTS_SCHED_SMT
|
||||
default y
|
||||
help
|
||||
Support ARM cpu topology definition. The MPIDR register defines
|
||||
affinity between processors which is then used to describe the cpu
|
||||
topology of an ARM System.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
depends on ARM_CPU_TOPOLOGY
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT scheduler support"
|
||||
depends on ARM_CPU_TOPOLOGY
|
||||
help
|
||||
Improves the CPU scheduler's decision making when dealing with
|
||||
MultiThreading at a cost of slightly increased overhead in some
|
||||
places. If unsure say N here.
|
||||
|
||||
config HAVE_ARM_SCU
|
||||
bool
|
||||
help
|
||||
|
||||
@@ -108,6 +108,9 @@ config ARM64
|
||||
select ARCH_SUPPORTS_PER_VMA_LOCK
|
||||
select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
|
||||
select ARCH_SUPPORTS_RT
|
||||
select ARCH_SUPPORTS_SCHED_SMT
|
||||
select ARCH_SUPPORTS_SCHED_CLUSTER
|
||||
select ARCH_SUPPORTS_SCHED_MC
|
||||
select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
|
||||
select ARCH_WANT_COMPAT_IPC_PARSE_VERSION if COMPAT
|
||||
select ARCH_WANT_DEFAULT_BPF_JIT
|
||||
@@ -1505,29 +1508,6 @@ config CPU_LITTLE_ENDIAN
|
||||
|
||||
endchoice
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config SCHED_CLUSTER
|
||||
bool "Cluster scheduler support"
|
||||
help
|
||||
Cluster scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with machines that have clusters of CPUs.
|
||||
Cluster usually means a couple of CPUs which are placed closely
|
||||
by sharing mid-level caches, last-level cache tags or internal
|
||||
busses.
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT scheduler support"
|
||||
help
|
||||
Improves the CPU scheduler's decision making when dealing with
|
||||
MultiThreading at a cost of slightly increased overhead in some
|
||||
places. If unsure say N here.
|
||||
|
||||
config NR_CPUS
|
||||
int "Maximum number of CPUs (2-4096)"
|
||||
range 2 4096
|
||||
|
||||
@@ -70,6 +70,8 @@ config LOONGARCH
|
||||
select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
|
||||
select ARCH_SUPPORTS_NUMA_BALANCING
|
||||
select ARCH_SUPPORTS_RT
|
||||
select ARCH_SUPPORTS_SCHED_SMT if SMP
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP
|
||||
select ARCH_USE_BUILTIN_BSWAP
|
||||
select ARCH_USE_CMPXCHG_LOCKREF
|
||||
select ARCH_USE_MEMTEST
|
||||
@@ -448,23 +450,6 @@ config EFI_STUB
|
||||
This kernel feature allows the kernel to be loaded directly by
|
||||
EFI firmware without the use of a bootloader.
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT scheduler support"
|
||||
depends on SMP
|
||||
default y
|
||||
help
|
||||
Improves scheduler's performance when there are multiple
|
||||
threads in one physical core.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
depends on SMP
|
||||
default y
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places.
|
||||
|
||||
config SMP
|
||||
bool "Multi-Processing support"
|
||||
help
|
||||
|
||||
@@ -2223,7 +2223,7 @@ config MIPS_MT_SMP
|
||||
select SMP
|
||||
select SMP_UP
|
||||
select SYS_SUPPORTS_SMP
|
||||
select SYS_SUPPORTS_SCHED_SMT
|
||||
select ARCH_SUPPORTS_SCHED_SMT
|
||||
select MIPS_PERF_SHARED_TC_COUNTERS
|
||||
help
|
||||
This is a kernel model which is known as SMVP. This is supported
|
||||
@@ -2235,18 +2235,6 @@ config MIPS_MT_SMP
|
||||
config MIPS_MT
|
||||
bool
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT (multithreading) scheduler support"
|
||||
depends on SYS_SUPPORTS_SCHED_SMT
|
||||
default n
|
||||
help
|
||||
SMT scheduler support improves the CPU scheduler's decision making
|
||||
when dealing with MIPS MT enabled cores at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config SYS_SUPPORTS_SCHED_SMT
|
||||
bool
|
||||
|
||||
config SYS_SUPPORTS_MULTITHREADING
|
||||
bool
|
||||
|
||||
@@ -2318,7 +2306,7 @@ config MIPS_CPS
|
||||
select HOTPLUG_CORE_SYNC_DEAD if HOTPLUG_CPU
|
||||
select SYNC_R4K if (CEVT_R4K || CSRC_R4K)
|
||||
select SYS_SUPPORTS_HOTPLUG_CPU
|
||||
select SYS_SUPPORTS_SCHED_SMT if CPU_MIPSR6
|
||||
select ARCH_SUPPORTS_SCHED_SMT if CPU_MIPSR6
|
||||
select SYS_SUPPORTS_SMP
|
||||
select WEAK_ORDERING
|
||||
select GENERIC_IRQ_MIGRATION if HOTPLUG_CPU
|
||||
|
||||
@@ -44,6 +44,7 @@ config PARISC
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_ARCH_TOPOLOGY if SMP
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP && PA8X00
|
||||
select GENERIC_CPU_DEVICES if !SMP
|
||||
select GENERIC_LIB_DEVMEM_IS_ALLOWED
|
||||
select SYSCTL_ARCH_UNALIGN_ALLOW
|
||||
@@ -319,14 +320,6 @@ config SMP
|
||||
|
||||
If you don't know what to do here, say N.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
depends on GENERIC_ARCH_TOPOLOGY && PA8X00
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config IRQSTACKS
|
||||
bool "Use separate kernel stacks when processing interrupts"
|
||||
default y
|
||||
|
||||
@@ -170,6 +170,9 @@ config PPC
|
||||
select ARCH_STACKWALK
|
||||
select ARCH_SUPPORTS_ATOMIC_RMW
|
||||
select ARCH_SUPPORTS_DEBUG_PAGEALLOC if PPC_BOOK3S || PPC_8xx
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP
|
||||
select ARCH_SUPPORTS_SCHED_SMT if PPC64 && SMP
|
||||
select SCHED_MC if ARCH_SUPPORTS_SCHED_MC
|
||||
select ARCH_USE_BUILTIN_BSWAP
|
||||
select ARCH_USE_CMPXCHG_LOCKREF if PPC64
|
||||
select ARCH_USE_MEMTEST
|
||||
@@ -963,18 +966,6 @@ config PPC_PROT_SAO_LPAR
|
||||
config PPC_COPRO_BASE
|
||||
bool
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT (Hyperthreading) scheduler support"
|
||||
depends on PPC64 && SMP
|
||||
help
|
||||
SMT scheduler support improves the CPU scheduler's decision making
|
||||
when dealing with POWER5 cpus at a cost of slightly increased
|
||||
overhead in some places. If unsure say N here.
|
||||
|
||||
config SCHED_MC
|
||||
def_bool y
|
||||
depends on SMP
|
||||
|
||||
config PPC_DENORMALISATION
|
||||
bool "PowerPC denormalisation exception handling"
|
||||
depends on PPC_BOOK3S_64
|
||||
|
||||
@@ -72,6 +72,7 @@ config RISCV
|
||||
select ARCH_SUPPORTS_PER_VMA_LOCK if MMU
|
||||
select ARCH_SUPPORTS_RT
|
||||
select ARCH_SUPPORTS_SHADOW_CALL_STACK if HAVE_SHADOW_CALL_STACK
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP
|
||||
select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
|
||||
select ARCH_USE_MEMTEST
|
||||
select ARCH_USE_QUEUED_RWLOCKS
|
||||
@@ -453,14 +454,6 @@ config SMP
|
||||
|
||||
If you don't know what to do here, say N.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
depends on SMP
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config NR_CPUS
|
||||
int "Maximum number of CPUs (2-512)"
|
||||
depends on SMP
|
||||
|
||||
@@ -547,15 +547,11 @@ config NODES_SHIFT
|
||||
depends on NUMA
|
||||
default "1"
|
||||
|
||||
config SCHED_SMT
|
||||
def_bool n
|
||||
|
||||
config SCHED_MC
|
||||
def_bool n
|
||||
|
||||
config SCHED_TOPOLOGY
|
||||
def_bool y
|
||||
prompt "Topology scheduler support"
|
||||
select ARCH_SUPPORTS_SCHED_SMT
|
||||
select ARCH_SUPPORTS_SCHED_MC
|
||||
select SCHED_SMT
|
||||
select SCHED_MC
|
||||
help
|
||||
|
||||
@@ -110,6 +110,8 @@ config SPARC64
|
||||
select HAVE_SETUP_PER_CPU_AREA
|
||||
select NEED_PER_CPU_EMBED_FIRST_CHUNK
|
||||
select NEED_PER_CPU_PAGE_FIRST_CHUNK
|
||||
select ARCH_SUPPORTS_SCHED_SMT if SMP
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP
|
||||
|
||||
config ARCH_PROC_KCORE_TEXT
|
||||
def_bool y
|
||||
@@ -288,24 +290,6 @@ if SPARC64 || COMPILE_TEST
|
||||
source "kernel/power/Kconfig"
|
||||
endif
|
||||
|
||||
config SCHED_SMT
|
||||
bool "SMT (Hyperthreading) scheduler support"
|
||||
depends on SPARC64 && SMP
|
||||
default y
|
||||
help
|
||||
SMT scheduler support improves the CPU scheduler's decision making
|
||||
when dealing with SPARC cpus at a cost of slightly increased overhead
|
||||
in some places. If unsure say N here.
|
||||
|
||||
config SCHED_MC
|
||||
bool "Multi-core scheduler support"
|
||||
depends on SPARC64 && SMP
|
||||
default y
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config CMDLINE_BOOL
|
||||
bool "Default bootloader kernel arguments"
|
||||
depends on SPARC64
|
||||
|
||||
@@ -330,6 +330,10 @@ config X86
|
||||
imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI
|
||||
select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
|
||||
select ARCH_SUPPORTS_PT_RECLAIM if X86_64
|
||||
select ARCH_SUPPORTS_SCHED_SMT if SMP
|
||||
select SCHED_SMT if SMP
|
||||
select ARCH_SUPPORTS_SCHED_CLUSTER if SMP
|
||||
select ARCH_SUPPORTS_SCHED_MC if SMP
|
||||
|
||||
config INSTRUCTION_DECODER
|
||||
def_bool y
|
||||
@@ -1031,29 +1035,6 @@ config NR_CPUS
|
||||
This is purely to save memory: each supported CPU adds about 8KB
|
||||
to the kernel image.
|
||||
|
||||
config SCHED_CLUSTER
|
||||
bool "Cluster scheduler support"
|
||||
depends on SMP
|
||||
default y
|
||||
help
|
||||
Cluster scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with machines that have clusters of CPUs.
|
||||
Cluster usually means a couple of CPUs which are placed closely
|
||||
by sharing mid-level caches, last-level cache tags or internal
|
||||
busses.
|
||||
|
||||
config SCHED_SMT
|
||||
def_bool y if SMP
|
||||
|
||||
config SCHED_MC
|
||||
def_bool y
|
||||
prompt "Multi-core scheduler support"
|
||||
depends on SMP
|
||||
help
|
||||
Multi-core scheduler support improves the CPU scheduler's decision
|
||||
making when dealing with multi-core CPU chips at a cost of slightly
|
||||
increased overhead in some places. If unsure say N here.
|
||||
|
||||
config SCHED_MC_PRIO
|
||||
bool "CPU core priorities scheduler support"
|
||||
depends on SCHED_MC
|
||||
|
||||
Reference in New Issue
Block a user