On Thu, Nov 30, 2023 at 01:37:19PM -0800, Steve Sistare wrote: > A guest that is migrated in the suspended state automaticaly wakes and > continues execution. This is wrong; the guest should end migration in > the same state it started. The root cause is that the outgoing migration > code automatically wakes the guest, then saves the RUNNING runstate in > global_state_store(), hence the incoming migration code thinks the guest is > running and continues the guest if autostart is true. > > On the outgoing side, delete the call to qemu_system_wakeup_request(). > Now that vm_stop completely stops a vm in the suspended state (from the > preceding patches), the existing call to vm_stop_force_state is sufficient > to correctly migrate all vmstate. > > On the incoming side, call vm_start if the pre-migration state was running > or suspended. For the latter, vm_start correctly restores the suspended > state, and a future system_wakeup monitor request will cause the vm to > resume running. > > Signed-off-by: Steve Sistare <steven.sist...@oracle.com>
Reviewed-by: Peter Xu <pet...@redhat.com> -- Peter Xu