x86/smp: Provide topology_is_primary_thread()
If the CPU is supporting SMT then the primary thread can be found by checking the lower APIC ID bits for zero. smp_num_siblings is used to build the mask for the APIC ID bits which need to be taken into account. This uses the MPTABLE or ACPI/MADT supplied APIC ID, which can be different than the initial APIC ID in CPUID. But according to AMD the lower bits have to be consistent. Intel gave a tentative confirmation as well. Preparatory patch to support disabling SMT at boot/runtime. Signed-off-by:Thomas Gleixner <tglx@linutronix.de> Reviewed-by:
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Acked-by:
Ingo Molnar <mingo@kernel.org>
Showing
- arch/x86/include/asm/apic.h 6 additions, 0 deletionsarch/x86/include/asm/apic.h
- arch/x86/include/asm/topology.h 3 additions, 1 deletionarch/x86/include/asm/topology.h
- arch/x86/kernel/apic/apic.c 15 additions, 0 deletionsarch/x86/kernel/apic/apic.c
- arch/x86/kernel/smpboot.c 9 additions, 0 deletionsarch/x86/kernel/smpboot.c
Loading
Please register or sign in to comment