Skip to content

Commit

Permalink
sched/x86: Change CONFIG_SCHED_ITMT to CONFIG_SCHED_MC_PRIO
Browse files Browse the repository at this point in the history
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 <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Srinivas Pandruvada <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/2b2ee29d93e3f162922d72d0165a1405864fbb23.1480444902.git.tim.c.chen@linux.intel.com
Signed-off-by: Ingo Molnar <[email protected]>
  • Loading branch information
pdxChen authored and Ingo Molnar committed Nov 30, 2016
1 parent a293b39 commit de966cf
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 12 deletions.
22 changes: 16 additions & 6 deletions arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down
6 changes: 3 additions & 3 deletions arch/x86/include/asm/topology.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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)
Expand All @@ -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 */
2 changes: 1 addition & 1 deletion arch/x86/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion drivers/acpi/bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion drivers/cpufreq/Kconfig.x86
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit de966cf

Please sign in to comment.