Re: [virt-manager PATCH] Fix checking for graphics spice for Xen

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

 



On 2/9/22 11:32 AM, Charles Arnold wrote:
On 2/9/22 10:32 AM, Cole Robinson wrote:
On 2/9/22 9:50 AM, Charles Arnold wrote:
Advertising graphics support doesn't necessarily mean spice support.
self.devices.graphics.supported seems to not be spice specific
but rather more generic in indicating whether graphics are supported.
For Xen, spice is not supported so fallback to the old logic.

Signed-off-by: Charles Arnold <carnold@xxxxxxxx>

diff --git a/virtinst/domcapabilities.py b/virtinst/domcapabilities.py
index 67bceaa3..ad6e3363 100644
--- a/virtinst/domcapabilities.py
+++ b/virtinst/domcapabilities.py
@@ -382,7 +382,7 @@ class DomainCapabilities(XMLBuilder):
          return len(models) > 0 and bool("emulator" in backends)

      def supports_graphics_spice(self):
-        if not self.devices.graphics.supported:
+        if not self.devices.graphics.supported or self.conn.is_xen():
              # domcaps is too old, or the driver doesn't advertise graphics
              # support. Use our pre-existing logic
              if not self.conn.is_qemu() and not self.conn.is_test():


Hmm but does that mean domcapabilities for xen is reporting that spice
is available? If that's the case, seems like a domcapabilities bug in
libvirt xen driver. Or am I missing something?

Thanks,
Cole


Booted into Xen, virsh domcapabilities reports,

<domainCapabilities>
  <path>/usr/bin/qemu-system-x86_64</path>
  <domain>xen</domain>
  <machine>xenpv</machine>
  <arch>x86_64</arch>
  <vcpu max='512'/>
  <iothreads supported='no'/>
  <os supported='yes'>
    <loader supported='no'/>
  </os>
  <cpu>
    <mode name='host-passthrough' supported='no'/>
    <mode name='maximum' supported='no'/>
    <mode name='host-model' supported='no'/>
    <mode name='custom' supported='no'/>
  </cpu>
  <devices>
    <disk supported='yes'>
      <enum name='diskDevice'>
        <value>disk</value>
        <value>cdrom</value>
      </enum>
      <enum name='bus'>
        <value>ide</value>
        <value>scsi</value>
        <value>xen</value>
      </enum>
      <enum name='model'/>
    </disk>
    <graphics supported='yes'>
      <enum name='type'>
        <value>sdl</value>
        <value>vnc</value>
        <value>spice</value>
      </enum>
    </graphics>
    <video supported='yes'>
      <enum name='modelType'>
        <value>vga</value>
        <value>cirrus</value>
        <value>xen</value>
      </enum>
    </video>
    <hostdev supported='yes'>
      <enum name='mode'>
        <value>subsystem</value>
      </enum>
      <enum name='startupPolicy'>
        <value>default</value>
        <value>mandatory</value>
        <value>requisite</value>
        <value>optional</value>
      </enum>
      <enum name='subsysType'>
        <value>usb</value>
        <value>pci</value>
      </enum>
      <enum name='capsType'/>
      <enum name='pciBackend'>
        <value>xen</value>
      </enum>
    </hostdev>
  </devices>
  <features>
    <gic supported='no'/>
    <vmcoreinfo supported='no'/>
    <genid supported='no'/>
    <sev supported='no'/>
  </features>
</domainCapabilities>


The more precise error I'm trying to fix is while attempting to install a Xen HVM guest it reports,

details=Traceback (most recent call last):
  File "./virtManager/asyncjob.py", line 72, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "./virtManager/createvm.py", line 2008, in _do_async_install
    installer.start_install(guest, meter=meter)
  File "./virtinst/install/installer.py", line 704, in start_install
    doboot, transient)
  File "./virtinst/install/installer.py", line 649, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib64/python3.6/site-packages/libvirt.py", line 4393, in createXML
    raise libvirtError('virDomainCreateXML() failed')
libvirt.libvirtError: unsupported configuration: cannot add redirected USB device: USB is disabled for this domain

So in the latest code the VM is marked as supporting spice and later wants to add a DeviceRedirdev. The 3.2.0 code always just failed for spice if 'is_qemu()' was false.

- Charles





[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