[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 13/17] migration/block: Make late-block-active the default
From: |
Fabiano Rosas |
Subject: |
[PULL 13/17] migration/block: Make late-block-active the default |
Date: |
Tue, 17 Dec 2024 14:48:51 -0300 |
From: Peter Xu <peterx@redhat.com>
Migration capability 'late-block-active' controls when the block drives
will be activated. If enabled, block drives will only be activated until
VM starts, either src runstate was "live" (RUNNING, or SUSPENDED), or it'll
be postponed until qmp_cont().
Let's do this unconditionally. There's no harm to delay activation of
block drives. Meanwhile there's no ABI breakage if dest does it, because
src QEMU has nothing to do with it, so it's no concern on ABI breakage.
IIUC we could avoid introducing this cap when introducing it before, but
now it's still not too late to just always do it. Cap now prone to
removal, but it'll be for later patches.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <20241206230838.1111496-4-peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
migration/migration.c | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index d2a6b939cf..e6db9cfc50 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -743,24 +743,6 @@ static void process_incoming_migration_bh(void *opaque)
trace_vmstate_downtime_checkpoint("dst-precopy-bh-enter");
- /* If capability late_block_activate is set:
- * Only fire up the block code now if we're going to restart the
- * VM, else 'cont' will do it.
- * This causes file locking to happen; so we don't want it to happen
- * unless we really are starting the VM.
- */
- if (!migrate_late_block_activate() ||
- (autostart && runstate_is_live(migration_get_target_runstate()))) {
- /* Make sure all file formats throw away their mutable metadata.
- * If we get an error here, just don't restart the VM yet. */
- bdrv_activate_all(&local_err);
- if (local_err) {
- error_report_err(local_err);
- local_err = NULL;
- autostart = false;
- }
- }
-
/*
* This must happen after all error conditions are dealt with and
* we're sure the VM is going to be running on this host.
@@ -775,7 +757,25 @@ static void process_incoming_migration_bh(void *opaque)
if (runstate_is_live(migration_get_target_runstate())) {
if (autostart) {
- vm_start();
+ /*
+ * Block activation is always delayed until VM starts, either
+ * here (which means we need to start the dest VM right now..),
+ * or until qmp_cont() later.
+ *
+ * We used to have cap 'late-block-activate' but now we do this
+ * unconditionally, as it has no harm but only benefit. E.g.,
+ * it's not part of migration ABI on the time of disk activation.
+ *
+ * Make sure all file formats throw away their mutable
+ * metadata. If error, don't restart the VM yet.
+ */
+ bdrv_activate_all(&local_err);
+ if (local_err) {
+ error_report_err(local_err);
+ local_err = NULL;
+ } else {
+ vm_start();
+ }
} else {
runstate_set(RUN_STATE_PAUSED);
}
--
2.35.3
- [PULL 07/17] migration/multifd: Cleanup src flushes on condition check, (continued)
- [PULL 07/17] migration/multifd: Cleanup src flushes on condition check, Fabiano Rosas, 2024/12/17
- [PULL 01/17] migration/multifd: Fix compile error caused by page_size usage, Fabiano Rosas, 2024/12/17
- [PULL 03/17] migration/multifd: Allow to sync with sender threads only, Fabiano Rosas, 2024/12/17
- [PULL 06/17] migration/multifd: Remove sync processing on postcopy, Fabiano Rosas, 2024/12/17
- [PULL 09/17] migration/multifd: Fix compat with QEMU < 9.0, Fabiano Rosas, 2024/12/17
- [PULL 02/17] migration/multifd: Further remove the SYNC on complete, Fabiano Rosas, 2024/12/17
- [PULL 10/17] s390x: Fix CSS migration, Fabiano Rosas, 2024/12/17
- [PULL 08/17] migration/multifd: Document the reason to sync for save_setup(), Fabiano Rosas, 2024/12/17
- [PULL 11/17] migration: Add helper to get target runstate, Fabiano Rosas, 2024/12/17
- [PULL 12/17] qmp/cont: Only activate disks if migration completed, Fabiano Rosas, 2024/12/17
- [PULL 13/17] migration/block: Make late-block-active the default,
Fabiano Rosas <=
- [PULL 15/17] migration/block: Fix possible race with block_inactive, Fabiano Rosas, 2024/12/17
- [PULL 17/17] tests/qtest/migration: Fix compile errors when CONFIG_UADK is set, Fabiano Rosas, 2024/12/17
- [PULL 14/17] migration/block: Apply late-block-active behavior to postcopy, Fabiano Rosas, 2024/12/17
- [PULL 16/17] migration/block: Rewrite disk activation, Fabiano Rosas, 2024/12/17
- Re: [PULL 00/17] Migration patches for 2024-12-17, Stefan Hajnoczi, 2024/12/19