On 21/01/21 11:17, Peter Zijlstra wrote: > @@ -7608,6 +7614,12 @@ int sched_cpu_dying(unsigned int cpu) > } > rq_unlock_irqrestore(rq, &rf); > > + /* > + * Should really be after we clear cpu_online(), but we're in > + * stop_machine(), so it all works. > + */
I believe you noted yourself in some earlier version that this *is* running with cpu_online(cpu) == false, __cpu_disable() being invoked before the _DYING .teardown callbacks are run. > + balance_push_set(cpu, false); > + > calc_load_migrate(rq); > update_max_interval(); > nohz_balance_exit_idle(rq);

