mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vm-migration: Define the Snapshottable and Transportable traits
A Snapshottable component can snapshot itself and provide a MigrationSnapshot payload as a result. A MigrationSnapshot payload is a map of component IDs to a list of migration sections (MigrationSection). As component can be made of several Migratable sub-components (e.g. the DeviceManager and its device objects), a migration snapshot can be made of multiple snapshot itself. A snapshot is a list of migration sections, each section being a component state snapshot. Having multiple sections allows for easier and backward compatible migration payload extensions. Once created, a migratable component snapshot may be transported and this is what the Transportable trait defines, through 2 methods: send and recv. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Yi Sun <yi.y.sun@linux.intel.com>
This commit is contained in:
committed by
Rob Bradford
parent
2d17f4384a
commit
1b1a2175ca
@@ -15,8 +15,8 @@ use std::result;
|
||||
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||
use std::sync::{Arc, Mutex};
|
||||
use vm_device::interrupt::InterruptSourceGroup;
|
||||
use vm_device::{Migratable, MigratableError, Pausable, Snapshotable};
|
||||
use vm_memory::{GuestAddress, GuestAddressSpace, GuestMemoryAtomic, GuestMemoryMmap};
|
||||
use vm_migration::{Migratable, MigratableError, Pausable, Snapshottable, Transportable};
|
||||
use vmm_sys_util::{errno::Result, eventfd::EventFd};
|
||||
|
||||
const VENDOR_ID: u32 = 0;
|
||||
@@ -354,5 +354,6 @@ impl Pausable for MmioDevice {
|
||||
}
|
||||
}
|
||||
|
||||
impl Snapshotable for MmioDevice {}
|
||||
impl Snapshottable for MmioDevice {}
|
||||
impl Transportable for MmioDevice {}
|
||||
impl Migratable for MmioDevice {}
|
||||
|
||||
Reference in New Issue
Block a user