|
|
eb748f |
From fa5f5f8f9b2b00b7580cb55f82c17e66e54b438d Mon Sep 17 00:00:00 2001
|
|
|
eb748f |
From: Jonathon Jongsma <jjongsma@redhat.com>
|
|
|
eb748f |
Date: Tue, 11 Jan 2022 11:21:39 -0600
|
|
|
eb748f |
Subject: [PATCH] cli: add 'ioapic.driver' to --features
|
|
|
eb748f |
|
|
|
eb748f |
Add the ability to set the ioapic driver using the --features argument:
|
|
|
eb748f |
|
|
|
eb748f |
$ virt-install --features ioapic.driver=qemu ...
|
|
|
eb748f |
|
|
|
eb748f |
This results in the following xml:
|
|
|
eb748f |
|
|
|
eb748f |
<features>
|
|
|
eb748f |
...
|
|
|
eb748f |
<ioapic driver="qemu"/>
|
|
|
eb748f |
</features>
|
|
|
eb748f |
|
|
|
eb748f |
This is required in order to install a guest with >255 cpus. Such a
|
|
|
eb748f |
configuration requires an iommu with extended interrupt mode enabled,
|
|
|
eb748f |
which in turn requires IOMMU interrupt remapping to be enabled, which in
|
|
|
eb748f |
turn requires a split I/O APIC.
|
|
|
eb748f |
|
|
|
eb748f |
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
|
eb748f |
(cherry picked from commit 9766beea0432faad7cded9e0285d05851659020e)
|
|
|
eb748f |
|
|
|
eb748f |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2037202
|
|
|
eb748f |
|
|
|
eb748f |
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
|
eb748f |
---
|
|
|
eb748f |
tests/data/cli/compare/virt-install-singleton-config-3.xml | 1 +
|
|
|
eb748f |
tests/data/xmlparse/change-guest-out.xml | 1 +
|
|
|
eb748f |
tests/test_cli.py | 2 +-
|
|
|
eb748f |
tests/test_xmlparse.py | 1 +
|
|
|
eb748f |
virtinst/cli.py | 1 +
|
|
|
eb748f |
virtinst/domain/features.py | 1 +
|
|
|
eb748f |
6 files changed, 6 insertions(+), 1 deletion(-)
|
|
|
eb748f |
|
|
|
eb748f |
diff --git a/tests/data/cli/compare/virt-install-singleton-config-3.xml b/tests/data/cli/compare/virt-install-singleton-config-3.xml
|
|
|
eb748f |
index d2e7a363..a36c7bf2 100644
|
|
|
eb748f |
--- a/tests/data/cli/compare/virt-install-singleton-config-3.xml
|
|
|
eb748f |
+++ b/tests/data/cli/compare/virt-install-singleton-config-3.xml
|
|
|
eb748f |
@@ -73,6 +73,7 @@
|
|
|
eb748f |
<pvspinlock state="off"/>
|
|
|
eb748f |
<smm state="off"/>
|
|
|
eb748f |
<vmcoreinfo state="on"/>
|
|
|
eb748f |
+ <ioapic driver="qemu"/>
|
|
|
eb748f |
</features>
|
|
|
eb748f |
<cpu>
|
|
|
eb748f |
<topology sockets="1" cores="3" threads="2"/>
|
|
|
eb748f |
diff --git a/tests/data/xmlparse/change-guest-out.xml b/tests/data/xmlparse/change-guest-out.xml
|
|
|
eb748f |
index 17af0826..3faf8783 100644
|
|
|
eb748f |
--- a/tests/data/xmlparse/change-guest-out.xml
|
|
|
eb748f |
+++ b/tests/data/xmlparse/change-guest-out.xml
|
|
|
eb748f |
@@ -32,6 +32,7 @@
|
|
|
eb748f |
<hidden state="on"/>
|
|
|
eb748f |
</kvm>
|
|
|
eb748f |
<pvspinlock state="on"/>
|
|
|
eb748f |
+ <ioapic driver="qemu"/>
|
|
|
eb748f |
</features>
|
|
|
eb748f |
<numatune>
|
|
|
eb748f |
<memory nodeset="2,4,6"/>
|
|
|
eb748f |
diff --git a/tests/test_cli.py b/tests/test_cli.py
|
|
|
eb748f |
index 9f0cdfe9..75a891f0 100644
|
|
|
eb748f |
--- a/tests/test_cli.py
|
|
|
eb748f |
+++ b/tests/test_cli.py
|
|
|
eb748f |
@@ -558,7 +558,7 @@ c.add_compare("""
|
|
|
eb748f |
--vcpus vcpu.current=3,maxvcpus=4,vcpu.placement=auto
|
|
|
eb748f |
--memory hotplugmemorymax=2048,hotplugmemoryslots=2
|
|
|
eb748f |
--disk none
|
|
|
eb748f |
---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
|
|
|
eb748f |
+--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
|
|
|
eb748f |
--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
|
|
|
eb748f |
--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
|
|
|
eb748f |
--memorybacking access.mode=shared,source.type=anonymous,hugepages=on
|
|
|
eb748f |
diff --git a/tests/test_xmlparse.py b/tests/test_xmlparse.py
|
|
|
eb748f |
index 6d1aaddb..ac2fb38d 100644
|
|
|
eb748f |
--- a/tests/test_xmlparse.py
|
|
|
eb748f |
+++ b/tests/test_xmlparse.py
|
|
|
eb748f |
@@ -160,6 +160,7 @@ def testAlterGuest():
|
|
|
eb748f |
check("kvm_hidden", None, True)
|
|
|
eb748f |
check("pvspinlock", None, True)
|
|
|
eb748f |
check("gic_version", None, False)
|
|
|
eb748f |
+ check("ioapic_driver", None, "qemu")
|
|
|
eb748f |
|
|
|
eb748f |
check = _make_checker(guest.cpu)
|
|
|
eb748f |
check("match", "exact", "strict")
|
|
|
eb748f |
diff --git a/virtinst/cli.py b/virtinst/cli.py
|
|
|
eb748f |
index e1a988f9..dbd4a545 100644
|
|
|
eb748f |
--- a/virtinst/cli.py
|
|
|
eb748f |
+++ b/virtinst/cli.py
|
|
|
eb748f |
@@ -2777,6 +2777,7 @@ class ParserFeatures(VirtCLIParser):
|
|
|
eb748f |
|
|
|
eb748f |
cls.add_arg("smm.state", "smm", is_onoff=True)
|
|
|
eb748f |
cls.add_arg("vmcoreinfo.state", "vmcoreinfo", is_onoff=True)
|
|
|
eb748f |
+ cls.add_arg("ioapic.driver", "ioapic_driver")
|
|
|
eb748f |
|
|
|
eb748f |
|
|
|
eb748f |
###################
|
|
|
eb748f |
diff --git a/virtinst/domain/features.py b/virtinst/domain/features.py
|
|
|
eb748f |
index 246839f2..7d32edc0 100644
|
|
|
eb748f |
--- a/virtinst/domain/features.py
|
|
|
eb748f |
+++ b/virtinst/domain/features.py
|
|
|
eb748f |
@@ -41,6 +41,7 @@ class DomainFeatures(XMLBuilder):
|
|
|
eb748f |
|
|
|
eb748f |
smm = XMLProperty("./smm/@state", is_onoff=True)
|
|
|
eb748f |
vmcoreinfo = XMLProperty("./vmcoreinfo/@state", is_onoff=True)
|
|
|
eb748f |
+ ioapic_driver = XMLProperty("./ioapic/@driver")
|
|
|
eb748f |
|
|
|
eb748f |
|
|
|
eb748f |
##################
|
|
|
eb748f |
--
|
|
|
eb748f |
2.34.1
|
|
|
eb748f |
|