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 <cloudliang@tencent.com>
This commit is contained in:
Jinrong Liang
2025-03-17 17:39:51 +08:00
committed by Bo Chen
parent 19fea1ad88
commit 4c27572b87
+6 -4
View File
@@ -2282,14 +2282,16 @@ impl RequestHandler for Vmm {
vm, vm,
#[cfg(all(feature = "kvm", target_arch = "x86_64"))] #[cfg(all(feature = "kvm", target_arch = "x86_64"))]
self.hypervisor.clone(), self.hypervisor.clone(),
send_data_migration, send_data_migration.clone(),
) )
.map_err(|migration_err| { .map_err(|migration_err| {
error!("Migration failed: {:?}", migration_err); error!("Migration failed: {:?}", migration_err);
// Stop logging dirty pages // Stop logging dirty pages only for non-local migrations
if let Err(e) = vm.stop_dirty_log() { if !send_data_migration.local {
return e; if let Err(e) = vm.stop_dirty_log() {
return e;
}
} }
if vm.get_state().unwrap() == VmState::Paused { if vm.get_state().unwrap() == VmState::Paused {