diff --git a/virt-manager-cli-add-ioapic.driver-to-features.patch b/virt-manager-cli-add-ioapic.driver-to-features.patch new file mode 100644 index 0000000..5c0124e --- /dev/null +++ b/virt-manager-cli-add-ioapic.driver-to-features.patch @@ -0,0 +1,112 @@ +From a024c96367ce5f1f8e24e19e9d0735de308d870b Mon Sep 17 00:00:00 2001 +From: Jonathon Jongsma +Date: Tue, 11 Jan 2022 11:21:39 -0600 +Subject: [PATCH] cli: add 'ioapic.driver' to --features + +Add the ability to set the ioapic driver using the --features argument: + + $ virt-install --features ioapic.driver=qemu ... + +This results in the following xml: + + + ... + + + +This is required in order to install a guest with >255 cpus. Such a +configuration requires an iommu with extended interrupt mode enabled, +which in turn requires IOMMU interrupt remapping to be enabled, which in +turn requires a split I/O APIC. + +Signed-off-by: Jonathon Jongsma +(cherry picked from commit 9766beea0432faad7cded9e0285d05851659020e) + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2039127 + +Signed-off-by: Jonathon Jongsma +--- + tests/data/cli/compare/virt-install-singleton-config-3.xml | 1 + + tests/data/xmlparse/change-guest-out.xml | 1 + + tests/test_cli.py | 2 +- + tests/test_xmlparse.py | 1 + + virtinst/cli.py | 1 + + virtinst/domain/features.py | 1 + + 6 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/tests/data/cli/compare/virt-install-singleton-config-3.xml b/tests/data/cli/compare/virt-install-singleton-config-3.xml +index d2e7a363..a36c7bf2 100644 +--- a/tests/data/cli/compare/virt-install-singleton-config-3.xml ++++ b/tests/data/cli/compare/virt-install-singleton-config-3.xml +@@ -73,6 +73,7 @@ + + + ++ + + + +diff --git a/tests/data/xmlparse/change-guest-out.xml b/tests/data/xmlparse/change-guest-out.xml +index 17af0826..3faf8783 100644 +--- a/tests/data/xmlparse/change-guest-out.xml ++++ b/tests/data/xmlparse/change-guest-out.xml +@@ -32,6 +32,7 @@ + + + ++ + + + +diff --git a/tests/test_cli.py b/tests/test_cli.py +index aba1fe3c..2034d21c 100644 +--- a/tests/test_cli.py ++++ b/tests/test_cli.py +@@ -558,7 +558,7 @@ c.add_compare(""" + --vcpus vcpu.current=3,maxvcpus=4,vcpu.placement=auto + --memory hotplugmemorymax=2048,hotplugmemoryslots=2 + --disk none +---features apic.eoi=off,hap=on,hyperv.synic.state=on,hyperv.reset.state=off,hyperv.spinlocks.state=on,hyperv.spinlocks.retries=5678,pae=on,pmu.state=on,pvspinlock.state=off,smm.state=off,viridian=on,vmcoreinfo.state=on,vmport.state=off,kvm.hidden.state=on,hyperv.vapic.state=off,hyperv.relaxed.state=off,gic.version=host,kvm.hint-dedicated.state=on ++--features apic.eoi=off,hap=on,hyperv.synic.state=on,hyperv.reset.state=off,hyperv.spinlocks.state=on,hyperv.spinlocks.retries=5678,pae=on,pmu.state=on,pvspinlock.state=off,smm.state=off,viridian=on,vmcoreinfo.state=on,vmport.state=off,kvm.hidden.state=on,hyperv.vapic.state=off,hyperv.relaxed.state=off,gic.version=host,kvm.hint-dedicated.state=on,ioapic.driver=qemu + --clock rtc_present=no,pit_present=yes,pit_tickpolicy=catchup,tsc_present=no,platform_present=no,hypervclock_present=no,platform_tickpolicy=foo,hpet_tickpolicy=bar,tsc_tickpolicy=wibble,kvmclock_tickpolicy=wobble,hypervclock_tickpolicy=woo + --boot bios.useserial=no,bios.rebootTimeout=60,cmdline=root=/foo,smbios.mode=host,bootmenu.enable=yes,loader_ro=yes,loader.type=rom,loader=/tmp/foo + --memorybacking access.mode=shared,source.type=anonymous,hugepages=on +diff --git a/tests/test_xmlparse.py b/tests/test_xmlparse.py +index 6d1aaddb..ac2fb38d 100644 +--- a/tests/test_xmlparse.py ++++ b/tests/test_xmlparse.py +@@ -160,6 +160,7 @@ def testAlterGuest(): + check("kvm_hidden", None, True) + check("pvspinlock", None, True) + check("gic_version", None, False) ++ check("ioapic_driver", None, "qemu") + + check = _make_checker(guest.cpu) + check("match", "exact", "strict") +diff --git a/virtinst/cli.py b/virtinst/cli.py +index e1a988f9..dbd4a545 100644 +--- a/virtinst/cli.py ++++ b/virtinst/cli.py +@@ -2777,6 +2777,7 @@ class ParserFeatures(VirtCLIParser): + + cls.add_arg("smm.state", "smm", is_onoff=True) + cls.add_arg("vmcoreinfo.state", "vmcoreinfo", is_onoff=True) ++ cls.add_arg("ioapic.driver", "ioapic_driver") + + + ################### +diff --git a/virtinst/domain/features.py b/virtinst/domain/features.py +index 246839f2..7d32edc0 100644 +--- a/virtinst/domain/features.py ++++ b/virtinst/domain/features.py +@@ -41,6 +41,7 @@ class DomainFeatures(XMLBuilder): + + smm = XMLProperty("./smm/@state", is_onoff=True) + vmcoreinfo = XMLProperty("./vmcoreinfo/@state", is_onoff=True) ++ ioapic_driver = XMLProperty("./ioapic/@driver") + + + ################## +-- +2.34.1 + diff --git a/virt-manager.spec b/virt-manager.spec index 92ec9ef..e835dfd 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -8,7 +8,7 @@ Name: virt-manager Version: 3.2.0 -Release: 11%{?dist}%{?extra_release} +Release: 12%{?dist}%{?extra_release} %global verrel %{version}-%{release} Summary: Desktop tool for managing virtual machines via libvirt @@ -31,6 +31,7 @@ Patch10: virt-manager-tests-verify-MDEV-support.patch Patch11: virt-manager-virt-manager-enable-MDEV-support.patch Patch12: virt-manager-cli-introduce-resource-fibrechannel.appid-option.patch Patch13: virt-manager-Handle-new-nodedev-name-for-mediated-devices.patch +Patch14: virt-manager-cli-add-ioapic.driver-to-features.patch Requires: virt-manager-common = %{verrel} @@ -188,6 +189,9 @@ done %changelog +* Thu Jan 20 2022 Jonathon Jongsma - 3.2.0-12 +- cli: add 'ioapic.driver' to --features (rhbz#2039127) + * Fri Nov 19 2021 Jonathon Jongsma - 3.2.0-11 - Handle new nodedev name for mediated devices (rhbz#2023650)