On Wed, Feb 08, 2023 at 12:02:55PM +0000, David Woodhouse wrote: > On Wed, 2023-02-08 at 18:03 +0800, Yuan Yao wrote: > > > > > #endif > > > + /* > > > + * Sync point with do_wait_cpu_initialized(). On boot, all secondary > > > + * CPUs reach this stage after receiving INIT/SIPI from do_cpu_up() > > > + * in the x86/cpu:kick cpuhp stage. At the start of cpu_init() they > > > + * will wait for do_wait_cpu_initialized() to set their bit in > > > + * smp_callout_mask to release them. > > > > The last sentence of the comment looks confused. The fact is: > > > > For serial case, The BSP waits AP to set cpu_initialized_mask from > > wait_for_master_cpu() after fired INIT/SIPI, then AP starts to wait > > cpu_callout_mask set by BSP from do_boot_cpu(). > > > > Or the comments below "Bringup step two:..." which also looks clear > > enough then above. > > > /* > * Sync point with do_wait_cpu_initialized(). Before proceeding through > * cpu_init(), the AP will call wait_for_master_cpu() which sets its > * bit in cpu_initialized_mask and then waits for the BSP to set its > * bit in cpu_callout_mask to release it. > */ > cpu_init_secondary(); > > > Better? Yes, it's better to me, thanks.