[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH V5 00/12] fix migration of suspended runstate
|
From: |
Steve Sistare |
|
Subject: |
[PATCH V5 00/12] fix migration of suspended runstate |
|
Date: |
Mon, 13 Nov 2023 10:33:48 -0800 |
Migration of a guest in the suspended runstate is broken. The incoming
migration code automatically tries to wake the guest, which is wrong;
the guest should end migration in the same runstate it started. Further,
for a restored snapshot, the automatic wakeup fails. The runstate is
RUNNING, but the guest is not. See the commit messages for the details.
Changes in V2:
* simplify "start on wakeup request"
* fix postcopy, snapshot, and background migration
* refactor fixes for each type of migration
* explicitly handled suspended events and runstate in tests
* add test for postcopy and background migration
Changes in V3:
* rebase to tip
* fix hang in new function migrate_wait_for_dirty_mem
Changes in V4:
* rebase to tip
* add patch for vm_prepare_start (thanks Peter)
* add patch to preserve cpu ticks
Changes in V5:
* rebase to tip
* added patches to completely stop vm in suspended state:
cpus: refactor vm_stop
cpus: stop vm in suspended state
* added patch to partially resume vm in suspended state:
cpus: start vm in suspended state
* modified "preserve suspended ..." patches to use the above.
* deleted patch "preserve cpu ticks if suspended". stop ticks in
vm_stop_force_state instead.
* deleted patch "add runstate function". defined new helper function
migrate_new_runstate in "preserve suspended runstate"
* Added some RB's, but removed other RB's because the patches changed.
Steve Sistare (12):
cpus: refactor vm_stop
cpus: stop vm in suspended state
cpus: pass runstate to vm_prepare_start
cpus: start vm in suspended state
migration: preserve suspended runstate
migration: preserve suspended for snapshot
migration: preserve suspended for bg_migration
tests/qtest: migration events
tests/qtest: option to suspend during migration
tests/qtest: precopy migration with suspend
tests/qtest: postcopy migration with suspend
tests/qtest: background migration with suspend
backends/tpm/tpm_emulator.c | 2 +-
gdbstub/system.c | 2 +-
hw/usb/hcd-ehci.c | 2 +-
hw/usb/redirect.c | 2 +-
hw/xen/xen-hvm-common.c | 2 +-
include/migration/snapshot.h | 7 ++
include/sysemu/runstate.h | 12 ++-
migration/migration-hmp-cmds.c | 12 ++-
migration/migration.c | 40 ++++---
migration/migration.h | 1 +
migration/savevm.c | 41 +++----
system/cpus.c | 71 ++++++------
system/runstate.c | 13 +++
system/vl.c | 2 +
tests/migration/i386/Makefile | 5 +-
tests/migration/i386/a-b-bootblock.S | 50 ++++++++-
tests/migration/i386/a-b-bootblock.h | 26 +++--
tests/qtest/migration-helpers.c | 27 ++---
tests/qtest/migration-helpers.h | 11 +-
tests/qtest/migration-test.c | 202 ++++++++++++++++++++++++++---------
20 files changed, 362 insertions(+), 168 deletions(-)
--
1.8.3.1
- [PATCH V5 00/12] fix migration of suspended runstate,
Steve Sistare <=
- [PATCH V5 02/12] cpus: stop vm in suspended state, Steve Sistare, 2023/11/13
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Fabiano Rosas, 2023/11/20
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Peter Xu, 2023/11/20
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Steven Sistare, 2023/11/20
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Peter Xu, 2023/11/20
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Steven Sistare, 2023/11/21
- Re: [PATCH V5 02/12] cpus: stop vm in suspended state, Peter Xu, 2023/11/21