vm-migration: Add start_migration() to Migratable trait

In order to clearly decouple when the migration is started compared to
when the dirty logging is started, we introduce a new method to the
Migratable trait. This clarifies the semantics as we don't end up using
start_dirty_log() for identifying when the migration has been started.
And similarly, we rely on the already existing complete_migration()
method to know when the migration has been ended.

A bug was reported when running a local migration with a vhost-user-net
device in server mode. The reason was because the migration_started
variable was never set to "true", since the start_dirty_log() function
was never invoked.

Signed-off-by: lizhaoxin1 <Lxiaoyouling@163.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
lizhaoxin1
2022-01-29 10:53:58 +08:00
committed by Sebastien Boeuf
parent a061bc32e4
commit a45e458c50
8 changed files with 40 additions and 2 deletions

View File

@@ -305,6 +305,10 @@ pub trait Migratable: Send + Pausable + Snapshottable + Transportable {
Ok(MemoryRangeTable::default())
}
fn start_migration(&mut self) -> std::result::Result<(), MigratableError> {
Ok(())
}
fn complete_migration(&mut self) -> std::result::Result<(), MigratableError> {
Ok(())
}