On Wed, 2023-02-22 at 10:46 +0100, Thomas Gleixner wrote: > 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... Indeed. Which is probably fixable but also probably more of a wart in the scheduler code, than it's worth for the negligible cleanup in the suspend code. Hence "not today". Which is code for "not ever". But don't tell my children that.