diff --git a/src/runtime-rs/crates/hypervisor/src/qemu/cmdline_generator.rs b/src/runtime-rs/crates/hypervisor/src/qemu/cmdline_generator.rs index 8b4c71f66b..7068e65989 100644 --- a/src/runtime-rs/crates/hypervisor/src/qemu/cmdline_generator.rs +++ b/src/runtime-rs/crates/hypervisor/src/qemu/cmdline_generator.rs @@ -282,6 +282,7 @@ struct Machine { accel: String, options: String, nvdimm: bool, + kernel_irqchip: Option, is_nvdimm_supported: bool, memory_backend: Option, @@ -309,6 +310,7 @@ impl Machine { accel: "kvm".to_owned(), options: config.machine_info.machine_accelerators.clone(), nvdimm: false, + kernel_irqchip: None, is_nvdimm_supported, memory_backend: None, } @@ -326,6 +328,11 @@ impl Machine { self.memory_backend = Some(mem_backend.to_owned()); self } + + fn set_kernel_irqchip(&mut self, kernel_irqchip: &str) -> &mut Self { + self.kernel_irqchip = Some(kernel_irqchip.to_owned()); + self + } } #[async_trait] @@ -340,6 +347,9 @@ impl ToQemuParams for Machine { if self.nvdimm { params.push("nvdimm=on".to_owned()); } + if let Some(kernel_irqchip) = &self.kernel_irqchip { + params.push(format!("kernel_irqchip={}", kernel_irqchip)); + } if let Some(mem_backend) = &self.memory_backend { params.push(format!("memory-backend={}", mem_backend)); }