Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sched/x86: Change CONFIG_SCHED_ITMT to CONFIG_SCHED_MC_PRIO

Rename CONFIG_SCHED_ITMT for Intel Turbo Boost Max Technology 3.0
to CONFIG_SCHED_MC_PRIO. This makes the configuration extensible
in future to other architectures that wish to similarly establish
CPU core priorities support in the scheduler.

The description in Kconfig is updated to reflect this change with
added details for better clarity. The configuration is explicitly
default-y, to enable the feature on CPUs that have this feature.

It has no effect on non-TBM3 CPUs.

Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: bp@suse.de
Cc: jolsa@redhat.com
Cc: linux-acpi@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: rjw@rjwysocki.net
Link: http://lkml.kernel.org/r/2b2ee29d93e3f162922d72d0165a1405864fbb23.1480444902.git.tim.c.chen@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by

Tim Chen and committed by
Ingo Molnar
de966cf4 a293b395

+22 -12
+16 -6
arch/x86/Kconfig
··· 939 939 making when dealing with multi-core CPU chips at a cost of slightly 940 940 increased overhead in some places. If unsure say N here. 941 941 942 - config SCHED_ITMT 943 - bool "Intel Turbo Boost Max Technology (ITMT) scheduler support" 942 + config SCHED_MC_PRIO 943 + bool "CPU core priorities scheduler support" 944 944 depends on SCHED_MC && CPU_SUP_INTEL && X86_INTEL_PSTATE 945 + default y 945 946 ---help--- 946 - ITMT enabled scheduler support improves the CPU scheduler's decision 947 - to move tasks to cpu core that can be boosted to a higher frequency 948 - than others. It will have better performance at a cost of slightly 949 - increased overhead in task migrations. If unsure say N here. 947 + Intel Turbo Boost Max Technology 3.0 enabled CPUs have a 948 + core ordering determined at manufacturing time, which allows 949 + certain cores to reach higher turbo frequencies (when running 950 + single threaded workloads) than others. 951 + 952 + Enabling this kernel feature teaches the scheduler about 953 + the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the 954 + scheduler's CPU selection logic accordingly, so that higher 955 + overall system performance can be achieved. 956 + 957 + This feature will have no effect on CPUs without this feature. 958 + 959 + If unsure say Y here. 950 960 951 961 source "kernel/Kconfig.preempt" 952 962
+3 -3
arch/x86/include/asm/topology.h
··· 148 148 149 149 extern bool x86_topology_update; 150 150 151 - #ifdef CONFIG_SCHED_ITMT 151 + #ifdef CONFIG_SCHED_MC_PRIO 152 152 #include <asm/percpu.h> 153 153 154 154 DECLARE_PER_CPU_READ_MOSTLY(int, sched_core_priority); ··· 163 163 /* Interface to notify scheduler that system revokes ITMT support */ 164 164 void sched_clear_itmt_support(void); 165 165 166 - #else /* CONFIG_SCHED_ITMT */ 166 + #else /* CONFIG_SCHED_MC_PRIO */ 167 167 168 168 #define sysctl_sched_itmt_enabled 0 169 169 static inline void sched_set_itmt_core_prio(int prio, int core_cpu) ··· 176 176 static inline void sched_clear_itmt_support(void) 177 177 { 178 178 } 179 - #endif /* CONFIG_SCHED_ITMT */ 179 + #endif /* CONFIG_SCHED_MC_PRIO */ 180 180 181 181 #endif /* _ASM_X86_TOPOLOGY_H */
+1 -1
arch/x86/kernel/Makefile
··· 123 123 124 124 obj-$(CONFIG_PERF_EVENTS) += perf_regs.o 125 125 obj-$(CONFIG_TRACING) += tracepoint.o 126 - obj-$(CONFIG_SCHED_ITMT) += itmt.o 126 + obj-$(CONFIG_SCHED_MC_PRIO) += itmt.o 127 127 128 128 ifdef CONFIG_FRAME_POINTER 129 129 obj-y += unwind_frame.o
+1 -1
drivers/acpi/bus.c
··· 338 338 } 339 339 #endif 340 340 341 - if (IS_ENABLED(CONFIG_SCHED_ITMT)) 341 + if (IS_ENABLED(CONFIG_SCHED_MC_PRIO)) 342 342 capbuf[OSC_SUPPORT_DWORD] |= OSC_SB_CPC_DIVERSE_HIGH_SUPPORT; 343 343 344 344 if (!ghes_disable)
+1 -1
drivers/cpufreq/Kconfig.x86
··· 6 6 bool "Intel P state control" 7 7 depends on X86 8 8 select ACPI_PROCESSOR if ACPI 9 - select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_ITMT 9 + select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO 10 10 help 11 11 This driver provides a P state for Intel core processors. 12 12 The driver implements an internal governor and will become