mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-01 17:52:40 +00:00
runtime-rs: support iommu_platform for qemu virtio-net device
Note that it's only supported on CCW systems. Signed-off-by: Pavel Mores <pmores@redhat.com>
This commit is contained in:
parent
0d038f20cc
commit
174fc8f44b
@ -997,6 +997,7 @@ pub struct DeviceVirtioNet {
|
||||
disable_modern: bool,
|
||||
|
||||
num_queues: u32,
|
||||
iommu_platform: bool,
|
||||
}
|
||||
|
||||
impl DeviceVirtioNet {
|
||||
@ -1007,6 +1008,7 @@ impl DeviceVirtioNet {
|
||||
mac_address,
|
||||
disable_modern: false,
|
||||
num_queues: 1,
|
||||
iommu_platform: false,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1019,6 +1021,11 @@ impl DeviceVirtioNet {
|
||||
self.num_queues = num_queues;
|
||||
self
|
||||
}
|
||||
|
||||
fn set_iommu_platform(&mut self, iommu_platform: bool) -> &mut Self {
|
||||
self.iommu_platform = iommu_platform;
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
@ -1035,6 +1042,9 @@ impl ToQemuParams for DeviceVirtioNet {
|
||||
if self.disable_modern {
|
||||
params.push("disable-modern=true".to_owned());
|
||||
}
|
||||
if self.iommu_platform {
|
||||
params.push("iommu_platform=on".to_owned());
|
||||
}
|
||||
|
||||
params.push("mq=on".to_owned());
|
||||
params.push(format!("vectors={}", 2 * self.num_queues + 2));
|
||||
@ -1378,6 +1388,9 @@ impl<'a> QemuCmdLine<'a> {
|
||||
if should_disable_modern() {
|
||||
virtio_net_device.set_disable_modern(true);
|
||||
}
|
||||
if self.config.device_info.enable_iommu_platform && self.bus_type() == VirtioBusType::Ccw {
|
||||
virtio_net_device.set_iommu_platform(true);
|
||||
}
|
||||
if self.config.network_info.network_queues > 1 {
|
||||
virtio_net_device.set_num_queues(self.config.network_info.network_queues);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user