mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
pci: vfio: Probe migration v2 capabilities
Probe VFIO_DEVICE_FEATURE_MIGRATION during VfioCommon::new() and store the result in a new migration_flags field so later migration phases can gate state machine transitions. The probe runs on every instantiation, including snapshot restore, because migration capability is a property of the host kernel and its variant driver rather than of any saved VM state. migration_flags() is added to the internal Vfio trait with a default implementation that returns Ok(None), meaning not migratable. VfioDeviceWrapper overrides it to issue the kernel ioctl, while vfio-user devices keep the default and are always treated as non migratable. Allow the VFIO_DEVICE_FEATURE ioctl in the VMM seccomp filter. Signed-off-by: Saravanan D <saravanand@crusoe.ai>
This commit is contained in:
@@ -86,6 +86,7 @@ const VFIO_DEVICE_RESET: u64 = 0x3b6f;
|
||||
const VFIO_IOMMU_MAP_DMA: u64 = 0x3b71;
|
||||
const VFIO_IOMMU_UNMAP_DMA: u64 = 0x3b72;
|
||||
const VFIO_DEVICE_IOEVENTFD: u64 = 0x3b74;
|
||||
const VFIO_DEVICE_FEATURE: u64 = 0x3b75;
|
||||
|
||||
// See include/uapi/linux/kvm.h in the kernel code.
|
||||
#[cfg(feature = "kvm")]
|
||||
@@ -381,6 +382,7 @@ fn create_vmm_ioctl_seccomp_rule_common(
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VFIO_IOMMU_MAP_DMA)?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VFIO_IOMMU_UNMAP_DMA)?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VFIO_DEVICE_IOEVENTFD)?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VFIO_DEVICE_FEATURE)?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VHOST_GET_FEATURES())?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VHOST_SET_FEATURES())?],
|
||||
and![Cond::new(1, ArgLen::Dword, Eq, VHOST_SET_OWNER())?],
|
||||
|
||||
Reference in New Issue
Block a user