mirror of
https://github.com/mii443/qemu.git
synced 2025-12-16 17:18:49 +00:00
target-arm/powerctl: defer cpu reset work to CPU context
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.bennee@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
@@ -127,7 +127,9 @@ void arm_handle_psci_call(ARMCPU *cpu)
|
||||
break;
|
||||
}
|
||||
target_cpu = ARM_CPU(target_cpu_state);
|
||||
ret = target_cpu->powered_off ? 1 : 0;
|
||||
|
||||
g_assert(qemu_mutex_iothread_locked());
|
||||
ret = target_cpu->power_state;
|
||||
break;
|
||||
default:
|
||||
/* Everything above affinity level 0 is always on. */
|
||||
|
||||
Reference in New Issue
Block a user