added a Parameter for vIOMMU so nobody has to use a github-script or change the kvm command on every vm boot. The args parameter doesn't work because the -device parameter(kvm) with intel-iommu has to be placed before the other arguments.
Signed-off-by: Markus Frank <[email protected]> --- PVE/QemuServer.pm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 42f0fbd..a09dd2e 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -647,6 +647,12 @@ EODESCR ." remove disk operations.", default => 0, }, + viommu => { + optional => 1, + type => 'boolean', + description => "enable guest vIOMMU", + default => 0, + }, bios => { optional => 1, type => 'string', @@ -3427,6 +3433,9 @@ sub config_to_command { my $winversion = windows_version($ostype); my $kvm = $conf->{kvm}; my $nodename = nodename(); + my $viommu = $conf->{viommu}; + + push @$devices, '-device', 'intel-iommu,intremap=on,caching-mode=on' if $viommu; my $arch = get_vm_arch($conf); my $kvm_binary = get_command_for_arch($arch); @@ -4021,6 +4030,8 @@ sub config_to_command { } push @$machineFlags, "type=${machine_type_min}"; + push @$machineFlags, 'accel=kvm,kernel-irqchip=split' if $viommu; + push @$cmd, @$devices; push @$cmd, '-rtc', join(',', @$rtcFlags) if scalar(@$rtcFlags); push @$cmd, '-machine', join(',', @$machineFlags) if scalar(@$machineFlags); -- 2.30.2 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
