[PATCH v3 4/8] sched, x86: use arch_update_cpu_topology to indicate x86 need sched domain rebuild

From: Srinivas Pandruvada
Date: Thu Sep 08 2016 - 18:28:57 EST


From: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>

Provides x86 with arch_update_cpu_topology function. This function
allows us to indicate that a condition is detected that the sched
domain of x86 needs a complete rebuild. This is done by setting the
x86_topology_update flag.

Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
---
arch/x86/include/asm/topology.h | 2 ++
arch/x86/kernel/smpboot.c | 11 +++++++++++
2 files changed, 13 insertions(+)

diff --git a/arch/x86/include/asm/topology.h b/arch/x86/include/asm/topology.h
index 0bcf3b7..8d6df77 100644
--- a/arch/x86/include/asm/topology.h
+++ b/arch/x86/include/asm/topology.h
@@ -147,6 +147,8 @@ struct pci_bus;
int x86_pci_root_bus_node(int bus);
void x86_pci_root_bus_resources(int bus, struct list_head *resources);

+extern bool x86_topology_update;
+
#ifdef CONFIG_SCHED_ITMT
extern unsigned int __read_mostly sysctl_sched_itmt_enabled;
#endif /* CONFIG_SCHED_ITMT */
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 292df31..737b9edf 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -110,6 +110,17 @@ static bool logical_packages_frozen __read_mostly;
int __max_smt_threads __read_mostly;

unsigned int __read_mostly sysctl_sched_itmt_enabled;
+/* Flag to indicate if a complete sched domain rebuild is required */
+bool x86_topology_update;
+
+int arch_update_cpu_topology(void)
+{
+ if (x86_topology_update) {
+ x86_topology_update = false;
+ return 1;
+ } else
+ return 0;
+}

static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
{
--
2.7.4