Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [PATCH v14 10/12] x86/smpboot: Send INIT/SIPI/SIPI to secondary CPUs in parallel | Date | Sat, 11 Mar 2023 10:54:58 +0200 |
| |
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
| |