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

View File

@@ -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 {