diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2008-08-23 17:47:10 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-23 17:47:10 +0200 |
commit | bbb65d2d365efe9951290e61678dcf81ec60add4 (patch) | |
tree | f3eacf1b1313d729e084064ed6dda5db64522bf4 /arch/x86/kernel/cpu/common_64.c | |
parent | 87ce786ae5f24e336195805a9fc7428a6f922478 (diff) | |
download | op-kernel-dev-bbb65d2d365efe9951290e61678dcf81ec60add4.zip op-kernel-dev-bbb65d2d365efe9951290e61678dcf81ec60add4.tar.gz |
x86: use cpuid vector 0xb when available for detecting cpu topology
cpuid leaf 0xb provides extended topology enumeration. This interface provides
the 32-bit x2APIC id of the logical processor and it also provides a new
mechanism to detect SMT and core siblings (which provides increased
addressability).
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu/common_64.c')
-rw-r--r-- | arch/x86/kernel/cpu/common_64.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/common_64.c b/arch/x86/kernel/cpu/common_64.c index af569a9..a2888c7 100644 --- a/arch/x86/kernel/cpu/common_64.c +++ b/arch/x86/kernel/cpu/common_64.c @@ -128,6 +128,9 @@ void __cpuinit detect_ht(struct cpuinfo_x86 *c) u32 eax, ebx, ecx, edx; int index_msb, core_bits; + if (cpu_has(c, X86_FEATURE_XTOPOLOGY)) + return; + cpuid(1, &eax, &ebx, &ecx, &edx); |