diff options
author | Jonathon Jongsma <jjongsma@redhat.com> | 2022-01-11 11:21:39 -0600 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2022-01-11 18:26:06 -0500 |
commit | 9766beea0432faad7cded9e0285d05851659020e (patch) | |
tree | ac0ee814b8396024fd857b4877ef5737e95649e0 | |
parent | cdd7061f8e0dc2885b48fbe1f085f028c42fd75c (diff) | |
download | virt-manager-9766beea0432faad7cded9e0285d05851659020e.tar.gz |
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:
<features>
...
<ioapic driver="qemu"/>
</features>
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 <jjongsma@redhat.com>
-rw-r--r-- | tests/data/cli/compare/virt-install-singleton-config-3.xml | 1 | ||||
-rw-r--r-- | tests/data/xmlparse/change-guest-out.xml | 1 | ||||
-rw-r--r-- | tests/test_cli.py | 2 | ||||
-rw-r--r-- | tests/test_xmlparse.py | 1 | ||||
-rw-r--r-- | virtinst/cli.py | 1 | ||||
-rw-r--r-- | virtinst/domain/features.py | 1 |
6 files changed, 6 insertions, 1 deletions
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 775eb8dd..0dc7b78c 100644 --- a/tests/data/cli/compare/virt-install-singleton-config-3.xml +++ b/tests/data/cli/compare/virt-install-singleton-config-3.xml @@ -74,6 +74,7 @@ <pvspinlock state="off"/> <smm state="off"/> <vmcoreinfo state="on"/> + <ioapic driver="qemu"/> </features> <cpu> <topology sockets="1" dies="1" cores="3" threads="2"/> diff --git a/tests/data/xmlparse/change-guest-out.xml b/tests/data/xmlparse/change-guest-out.xml index 9fbb06fd..2f1e060a 100644 --- a/tests/data/xmlparse/change-guest-out.xml +++ b/tests/data/xmlparse/change-guest-out.xml @@ -32,6 +32,7 @@ <hidden state="on"/> </kvm> <pvspinlock state="on"/> + <ioapic driver="qemu"/> </features> <numatune> <memory nodeset="2,4,6"/> diff --git a/tests/test_cli.py b/tests/test_cli.py index 124335f8..ecd99032 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -576,7 +576,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,kvm.poll-control.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,kvm.poll-control.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,bootmenu.timeout=5000,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 97147501..e4b1a608 100644 --- a/tests/test_xmlparse.py +++ b/tests/test_xmlparse.py @@ -162,6 +162,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 26e4e8e5..7cf9e603 100644 --- a/virtinst/cli.py +++ b/virtinst/cli.py @@ -2965,6 +2965,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 29e7d965..87de4358 100644 --- a/virtinst/domain/features.py +++ b/virtinst/domain/features.py @@ -42,6 +42,7 @@ class DomainFeatures(XMLBuilder): smm = XMLProperty("./smm/@state", is_onoff=True) vmcoreinfo = XMLProperty("./vmcoreinfo/@state", is_onoff=True) + ioapic_driver = XMLProperty("./ioapic/@driver") ################## |