On Tue, Aug 29, 2023 at 11:17:57AM -0700, 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, do not call qemu_system_wakeup_request(). > > On the incoming side for precopy, prepare to start the vm, but do not > yet start it. A future system_wakeup will cause the main loop to resume > the VCPUs. > > On the incoming side for postcopy, do not wake the guest, and apply the > the same logic as found in precopy: if autostart and the runstate is > RUNNING, then vm_start, else prepare to start the vm. > > Signed-off-by: Steve Sistare <steven.sist...@oracle.com> > Reviewed-by: Fabiano Rosas <faro...@suse.de>
Reviewed-by: Peter Xu <pet...@redhat.com> -- Peter Xu