[virt-manager PATCH v2] cli: add 'ioapic.driver' to --features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---

Not sure how I missed the cli test.

I wasn't quite sure where to add the option, but just added it to an existing
test that was already excercising most of the features. Hopefully that's
sufficient? It silences the test failure.

 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 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 b6e7873e..235cf56e 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -578,7 +578,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")
 
 
     ##################
-- 
2.33.1




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux