On 1 February 2017 at 15:05, Alex Bennée <alex.ben...@linaro.org> wrote: > When switching a new vCPU on we want to complete a bunch of the setup > work before we start scheduling the vCPU thread. To do this cleanly we > defer vCPU setup to async work which will run the vCPUs execution > context as the thread is woken up. The scheduling of the work will kick > the vCPU awake. > > This avoids potential races in MTTCG system emulation. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Reviewed-by: Richard Henderson <r...@twiddle.net>
Can we now have races between arm_set_cpu_on() and arm_set_cpu_off() ? It's not clear to me what prevents that. With this change our PSCI CPU_ON is no longer effectively atomic, which means we need to think about the races between PSCI CPU_ON and CPU_OFF, and the fact that the core might be in what the PSCI spec section 6.6 calls an ON_PENDING state (ie CPU_ON has been called for it but it hasn't actually booted yet). thanks -- PMM