diff options
author | Peter Xu <peterx@redhat.com> | 2024-12-06 18:08:36 -0500 |
---|---|---|
committer | Fabiano Rosas <farosas@suse.de> | 2025-01-09 17:38:51 -0300 |
commit | 61f2b489987c51159c53101a072c6aa901b50506 (patch) | |
tree | b5bd9c2cdbad2c1523ca25643070c1d2d2e7980a | |
parent | fca9aef1c8d8fc4482cc541638dbfac76dc125d6 (diff) | |
download | qemu-61f2b489987c51159c53101a072c6aa901b50506.zip qemu-61f2b489987c51159c53101a072c6aa901b50506.tar.gz qemu-61f2b489987c51159c53101a072c6aa901b50506.tar.bz2 |
migration/block: Apply late-block-active behavior to postcopy
Postcopy never cared about late-block-active. However there's no mention
in the capability that it doesn't apply to postcopy.
Considering that we _assumed_ late activation is always good, do that too
for postcopy unconditionally, just like precopy. After this patch, we
should have unified the behavior across all.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <20241206230838.1111496-5-peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
-rw-r--r-- | migration/savevm.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 927b114..d4842b5 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2137,22 +2137,21 @@ static void loadvm_postcopy_handle_run_bh(void *opaque) trace_vmstate_downtime_checkpoint("dst-postcopy-bh-announced"); - /* 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; - } - - trace_vmstate_downtime_checkpoint("dst-postcopy-bh-cache-invalidated"); - dirty_bitmap_mig_before_vm_start(); if (autostart) { - /* Hold onto your hats, starting the CPU */ - vm_start(); + /* + * 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); + trace_vmstate_downtime_checkpoint("dst-postcopy-bh-cache-invalidated"); + if (local_err) { + error_report_err(local_err); + local_err = NULL; + } else { + vm_start(); + } } else { /* leave it paused and let management decide when to start the CPU */ runstate_set(RUN_STATE_PAUSED); |