On Tue, Feb 28, 2023 at 11:13 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > On Sun, Feb 26 2023 at 11:07, Usama Arif wrote: > > From: Brian Gerst <brgerst@xxxxxxxxx> > > > > Eliminating global variables from the CPU startup path in order to simplify > > it and facilitate parallel startup. > > As this patch is now part of the parallel boot series and actually > introduces smpboot_control, the above is neither accurate nor useful. > > Folks, really. > > > Remove initial_stack, and load RSP from current_task->thread.sp instead. > > > > #ifdef CONFIG_SMP > > - initial_stack = (unsigned long)temp_stack + sizeof(temp_stack); > > + current->thread.sp = (unsigned long)temp_stack + sizeof(temp_stack); > > This lacks a comment about the temporary (ab)use of current->thread.sp task->thread.sp represents the saved stack pointer of a sleeping or newly forked task (see __switch_to_asm()), and the boot cpu's idle task is effectively going to sleep. Using a temporary stack for resume is kind of a hack to workaround the fact that the idle task stack is in use already, but improving that is out of scope for this series. -- Brian Gerst