Messages in this thread | | | From | Brian Gerst <> | Date | Wed, 8 Feb 2023 00:09:25 -0500 | Subject | Re: [PATCH v7 6/9] x86/smpboot: Support parallel startup of secondary CPUs |
| |
On Tue, Feb 7, 2023 at 6:10 PM Usama Arif <usama.arif@bytedance.com> wrote: > > From: Thomas Gleixner <tglx@linutronix.de> > > Rework the real-mode startup code to allow for APs to be brought up in > parallel. This is in two parts: > > 1. Introduce a bit-spinlock to prevent them from all using the real > mode stack at the same time. > > 2. Avoid the use of global variables for passing per-CPU information to > the APs. > > To achieve the latter, export the cpuid_to_apicid[] array so that each > AP can find its own per_cpu data (and thus initial_gs, initial_stack and > early_gdt_descr) by searching therein based on its APIC ID. > > Introduce a global variable 'smpboot_control' indicating to the AP how > it should find its APIC ID. For a serialized bringup, the APIC ID is > explicitly passed in the low bits of smpboot_control, while for parallel > mode there are flags directing the AP to find its APIC ID in CPUID leaf > 0x0b (for X2APIC mode) or CPUID leaf 0x01 where 8 bits are sufficient.
For the serialized bringup case, it would be simpler to just put the cpu number in the lower bits instead of the APIC id, skipping the lookup.
-- Brian Gerst
| |