On Wed, Feb 22 2023 at 08:19, David Woodhouse wrote: > But the BSP/CPU0 is different. It hasn't actually been taken offline, > and its idle thread context is still in cpu_startup_entry(CPUHP_ONLINE) > which got called from rest_init(). > > In testing I probably got away with it because we're only using the > *top* of the stack, don't use anything of the red zone, and thus don't > actually bother the true idle thread which is never going to return. :) > But I don't think it's correct; we really ought to have that temp_stack > unless we're going to refactor the wakeup_64 code to *become* the idle > thread just as startup_secondary() does, and *schedule* to the context > that was saved in the suspend code. And thereby messing up the scheduler state... Thanks, tglx