]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
x86/topology: Store extended topology leaf information
authorThomas Gleixner <tglx@linutronix.de>
Thu, 30 Mar 2023 07:52:16 +0000 (09:52 +0200)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Thu, 30 Mar 2023 12:27:08 +0000 (14:27 +0200)
Save the extended topology leaf number if it exists and is valid in
preparation of parallel CPU bringup.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/include/asm/topology.h
arch/x86/kernel/cpu/topology.c

index 2ba57588e937fd9c50125324d568ff94149f99d8..0226565ec6320f7f2615e97c660b4f9d2d1f88d0 100644 (file)
@@ -121,6 +121,7 @@ extern unsigned int __max_die_per_package;
 #define topology_core_cpumask(cpu)             (per_cpu(cpu_core_map, cpu))
 #define topology_sibling_cpumask(cpu)          (per_cpu(cpu_sibling_map, cpu))
 
+extern unsigned int topology_extended_leaf;
 extern unsigned int __max_logical_packages;
 #define topology_max_packages()                        (__max_logical_packages)
 
index 5e868b62a7c4e4c466fadd8f858e004a9ba76e27..bd72368cdce066ad4c49162c46ac8ee2f6b510f3 100644 (file)
@@ -29,6 +29,8 @@ unsigned int __max_die_per_package __read_mostly = 1;
 EXPORT_SYMBOL(__max_die_per_package);
 
 #ifdef CONFIG_SMP
+unsigned int topology_extended_leaf __ro_after_init;
+
 /*
  * Check if given CPUID extended topology "leaf" is implemented
  */
@@ -72,6 +74,7 @@ int detect_extended_topology_early(struct cpuinfo_x86 *c)
        if (leaf < 0)
                return -1;
 
+       topology_extended_leaf = leaf;
        set_cpu_cap(c, X86_FEATURE_XTOPOLOGY);
 
        cpuid_count(leaf, SMT_LEVEL, &eax, &ebx, &ecx, &edx);