Hello Will, On 11/04/2016 16:37, Will Deacon wrote:
Our exit/reboot code is a bit of a mess: - Both kvm__reboot and kvm_cpu_exit send SIGKVMEXIT to running vcpus - When vcpu0 exits, the main thread starts executing destructors (exitcalls) whilst other vcpus may be running - The pause_lock isn't always held when inspecting is_running for a vcpu This patch attempts to fix these issues by restricting the exit/reboot path to vcpu0 and the main thread. In particular, a KVM_SYSTEM_EVENT will signal SIGKVMEXIT to vcpu0, which will join with the main thread and then tear down the other vcpus before invoking any destructor code. Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Balbir Singh <bsingharora@xxxxxxxxx> Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
I've been able to power cycle 1000 guests without any issue. Without this patch it break at ~50 cycles.
Tested-by: Julien Grall <julien.grall@xxxxxxx> Regards, -- Julien Grall -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html