Re: [PATCH v14 10/12] x86/smpboot: Send INIT/SIPI/SIPI to secondary CPUs in parallel

From: Thomas Gleixner
Date: Sat Mar 11 2023 - 03:55:09 EST


On Wed, Mar 08 2023 at 17:13, Usama Arif wrote:
>
> +/* Bringup step one: Send INIT/SIPI to the target AP */
> +static int native_cpu_kick(unsigned int cpu)
> +{
> + return do_cpu_up(cpu, idle_thread_get(cpu));

This idle_thread_get() is not sufficient. bringup_cpu() does:

struct task_struct *idle = idle_thread_get(cpu);

/*
* Reset stale stack state from the last time this CPU was online.
*/
scs_task_reset(idle);
kasan_unpoison_task_stack(idle);

But with this new model neither the shadow stack gets reset nor the
kasan unpoisoning happens _before_ the to be kicked CPU starts
executing.

That needs a new function which does the get() and the above.

Thanks,

tglx