aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/Kconfig22
-rw-r--r--arch/x86/include/asm/topology.h6
-rw-r--r--arch/x86/kernel/Makefile2
-rw-r--r--drivers/acpi/bus.c2
-rw-r--r--drivers/cpufreq/Kconfig.x862
5 files changed, 22 insertions, 12 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 25950f0ccc33..715c1f3664c4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -939,14 +939,24 @@ config SCHED_MC
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_ITMT
- bool "Intel Turbo Boost Max Technology (ITMT) scheduler support"
+config SCHED_MC_PRIO
+ bool "CPU core priorities scheduler support"
depends on SCHED_MC && CPU_SUP_INTEL && X86_INTEL_PSTATE
+ default y
---help---
- ITMT enabled scheduler support improves the CPU scheduler's decision
- to move tasks to cpu core that can be boosted to a higher frequency
- than others. It will have better performance at a cost of slightly
- increased overhead in task migrations. If unsure say N here.
+ Intel Turbo Boost Max Technology 3.0 enabled CPUs have a
+ core ordering determined at manufacturing time, which allows
+ certain cores to reach higher turbo frequencies (when running
+ single threaded workloads) than others.
+
+ Enabling this kernel feature teaches the scheduler about
+ the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the
+ scheduler's CPU selection logic accordingly, so that higher
+ overall system performance can be achieved.
+
+ This feature will have no effect on CPUs without this feature.
+
+ If unsure say Y here.
source "kernel/Kconfig.preempt"
diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 4813df5c21f0..6358a85e2270 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -148,7 +148,7 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources);
extern bool x86_topology_update;
-#ifdef CONFIG_SCHED_ITMT
+#ifdef CONFIG_SCHED_MC_PRIO
#include <asm/percpu.h>
DECLARE_PER_CPU_READ_MOSTLY(int, sched_core_priority);
@@ -163,7 +163,7 @@ int sched_set_itmt_support(void);
/* Interface to notify scheduler that system revokes ITMT support */
void sched_clear_itmt_support(void);
-#else /* CONFIG_SCHED_ITMT */
+#else /* CONFIG_SCHED_MC_PRIO */
#define sysctl_sched_itmt_enabled 0
static inline void sched_set_itmt_core_prio(int prio, int core_cpu)
@@ -176,6 +176,6 @@ static inline int sched_set_itmt_support(void)
static inline void sched_clear_itmt_support(void)
{
}
-#endif /* CONFIG_SCHED_ITMT */
+#endif /* CONFIG_SCHED_MC_PRIO */
#endif /* _ASM_X86_TOPOLOGY_H */
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index bbd0ebcfcc2a..05110c1097ae 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -123,7 +123,7 @@ obj-$(CONFIG_EFI) += sysfb_efi.o
obj-$(CONFIG_PERF_EVENTS) += perf_regs.o
obj-$(CONFIG_TRACING) += tracepoint.o
-obj-$(CONFIG_SCHED_ITMT) += itmt.o
+obj-$(CONFIG_SCHED_MC_PRIO) += itmt.o
ifdef CONFIG_FRAME_POINTER
obj-y += unwind_frame.o
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 806db0d6e6e8..5cbefd7621f0 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -338,7 +338,7 @@ static void acpi_bus_osc_support(void)
}
#endif
- if (IS_ENABLED(CONFIG_SCHED_ITMT))
+ if (IS_ENABLED(CONFIG_SCHED_MC_PRIO))
capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_CPC_DIVERSE_HIGH_SUPPORT;
if (!ghes_disable)
diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
index c6d273b43ff9..35f71825b7f3 100644
--- a/drivers/cpufreq/Kconfig.x86
+++ b/drivers/cpufreq/Kconfig.x86
@@ -6,7 +6,7 @@ config X86_INTEL_PSTATE
bool "Intel P state control"
depends on X86
select ACPI_PROCESSOR if ACPI
- select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_ITMT
+ select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO
help
This driver provides a P state for Intel core processors.
The driver implements an internal governor and will become