From 4c27572b8720584aca951772b2c7cc7e6b309393 Mon Sep 17 00:00:00 2001 From: Jinrong Liang Date: Mon, 17 Mar 2025 17:39:51 +0800 Subject: [PATCH] vm-migration: Avoid stop_dirty_log() during local migration Starting and stopping logging dirty pages only occurs during cross-host migrations. Signed-off-by: Jinrong Liang --- vmm/src/lib.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vmm/src/lib.rs b/vmm/src/lib.rs index a925057db..cf28a38b5 100644 --- a/vmm/src/lib.rs +++ b/vmm/src/lib.rs @@ -2282,14 +2282,16 @@ impl RequestHandler for Vmm { vm, #[cfg(all(feature = "kvm", target_arch = "x86_64"))] self.hypervisor.clone(), - send_data_migration, + send_data_migration.clone(), ) .map_err(|migration_err| { error!("Migration failed: {:?}", migration_err); - // Stop logging dirty pages - if let Err(e) = vm.stop_dirty_log() { - return e; + // Stop logging dirty pages only for non-local migrations + if !send_data_migration.local { + if let Err(e) = vm.stop_dirty_log() { + return e; + } } if vm.get_state().unwrap() == VmState::Paused {