pub struct MigrationController { /* private fields */ }Expand description
Live migration controller
Implementations§
Source§impl MigrationController
impl MigrationController
pub fn new(source_vm_id: u64) -> Self
Sourcepub fn begin_setup(&mut self, total_memory_pages: u64) -> Result<(), VmError>
pub fn begin_setup(&mut self, total_memory_pages: u64) -> Result<(), VmError>
Begin migration setup
Sourcepub fn begin_precopy(&mut self) -> Result<(), VmError>
pub fn begin_precopy(&mut self) -> Result<(), VmError>
Transition to pre-copy phase
Sourcepub fn precopy_iteration(&mut self) -> Result<Vec<u64>, VmError>
pub fn precopy_iteration(&mut self) -> Result<Vec<u64>, VmError>
Perform one pre-copy iteration: returns list of dirty page indices to send
Sourcepub fn begin_stop_and_copy(&mut self) -> Result<(), VmError>
pub fn begin_stop_and_copy(&mut self) -> Result<(), VmError>
Begin stop-and-copy phase (VM must be paused)
Sourcepub fn serialize_vmcs(&mut self, fields: &[(u32, u64)]) -> Result<(), VmError>
pub fn serialize_vmcs(&mut self, fields: &[(u32, u64)]) -> Result<(), VmError>
Serialize VMCS state for transfer
Sourcepub fn final_dirty_pages(&self) -> Result<Vec<u64>, VmError>
pub fn final_dirty_pages(&self) -> Result<Vec<u64>, VmError>
Get remaining dirty pages for stop-and-copy final transfer