mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-11-05 03:21:13 +00:00
vmm: config: Ensure shared memory is enabled if using user-devices
Correct operation of user devices (vfio-user) requires shared memory so flag this to prevent it from failing in strange ways. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
b28063a7b4
commit
3efccd0fef
@ -138,6 +138,8 @@ pub enum ValidationError {
|
|||||||
TdxKernelSpecified,
|
TdxKernelSpecified,
|
||||||
// Insuffient vCPUs for queues
|
// Insuffient vCPUs for queues
|
||||||
TooManyQueues,
|
TooManyQueues,
|
||||||
|
// Need shared memory for vfio-user
|
||||||
|
UserDevicesRequireSharedMemory,
|
||||||
}
|
}
|
||||||
|
|
||||||
type ValidationResult<T> = std::result::Result<T, ValidationError>;
|
type ValidationResult<T> = std::result::Result<T, ValidationError>;
|
||||||
@ -185,6 +187,9 @@ impl fmt::Display for ValidationError {
|
|||||||
TooManyQueues => {
|
TooManyQueues => {
|
||||||
write!(f, "Number of vCPUs is insufficient for number of queues")
|
write!(f, "Number of vCPUs is insufficient for number of queues")
|
||||||
}
|
}
|
||||||
|
UserDevicesRequireSharedMemory => {
|
||||||
|
write!(f, "Using user devices requires using shared memory")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1905,6 +1910,11 @@ impl VmConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Some(user_devices) = &self.user_devices {
|
||||||
|
if !user_devices.is_empty() && !self.memory.shared {
|
||||||
|
return Err(ValidationError::UserDevicesRequireSharedMemory);
|
||||||
|
}
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user