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


Reply via email to