diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/Kconfig | 22 | ||||
-rw-r--r-- | arch/x86/include/asm/topology.h | 6 | ||||
-rw-r--r-- | arch/x86/kernel/Makefile | 2 |
3 files changed, 20 insertions, 10 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 |