← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2097529] [NEW] virtio should be the default hw_video_model even for spice

 

Public bug reported:

4 years ago we changed the default video model in the libvirt driver to virto for all backends that
support it.

https://blueprints.launchpad.net/nova/+spec/virtio-as-default-display-
device

when that change was made
https://github.com/openstack/nova/commit/cc59698d6903b0ed3778826d6704758294abbd69

we did not update the default when using spice

https://github.com/openstack/nova/blob/e27bbe72e0d293e55c30d4f90ca0afcf47427419/nova/virt/libvirt/driver.py#L6771-L6772

In centos/rhel 9 cirros was deprecated for removal i a possible future
release and QXL was removed entirely as all spice support was compiled
out of qemu.

it appears that ubuntu have now also taken the same approach and removed qxl support form 24.04
leading to the following error 
 libvirt.libvirtError: unsupported configuration: domain configuration does not support video model 'qxl'


qemu and libvirt on ubuntu 24.04 do correctly report that qxl is not supported via the domacaps API by omitting it form the last of available models

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:     <video
supported='yes'>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:       <enum
name='modelType'>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
<value>vga</value>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
<value>cirrus</value>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
<value>virtio</value>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
<value>none</value>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
<value>bochs</value>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:       </enum>

Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:     </video>


that means that nova will not report the qxl video model trait and as a result if the 
image_metadata_prefilter is enabled it will correctly prevent vms that request qxl form being scheduled to host that do not support it.

this however does not protect form the config driven behavior that sets
the default to qxl if speice is enabled.

historically this was done because qxl was a spice optimised video model
offering richer graphics vs cirros or VGA.

today virtio is our general default and it provides a richer feature set
then qxl so we should just remove the special casing for spice and
default it to virtio as well.

** Affects: nova
     Importance: High
     Assignee: sean mooney (sean-k-mooney)
         Status: Triaged


** Tags: console libvirt upgrade

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2097529

Title:
  virtio should be the default hw_video_model even for spice

Status in OpenStack Compute (nova):
  Triaged

Bug description:
  4 years ago we changed the default video model in the libvirt driver to virto for all backends that
  support it.

  https://blueprints.launchpad.net/nova/+spec/virtio-as-default-display-
  device

  when that change was made
  https://github.com/openstack/nova/commit/cc59698d6903b0ed3778826d6704758294abbd69

  we did not update the default when using spice

  https://github.com/openstack/nova/blob/e27bbe72e0d293e55c30d4f90ca0afcf47427419/nova/virt/libvirt/driver.py#L6771-L6772

  In centos/rhel 9 cirros was deprecated for removal i a possible future
  release and QXL was removed entirely as all spice support was compiled
  out of qemu.

  it appears that ubuntu have now also taken the same approach and removed qxl support form 24.04
  leading to the following error 
   libvirt.libvirtError: unsupported configuration: domain configuration does not support video model 'qxl'

  
  qemu and libvirt on ubuntu 24.04 do correctly report that qxl is not supported via the domacaps API by omitting it form the last of available models

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:     <video
  supported='yes'>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:       <enum
  name='modelType'>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
  <value>vga</value>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
  <value>cirrus</value>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
  <value>virtio</value>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
  <value>none</value>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:
  <value>bochs</value>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:       </enum>

  Feb 05 20:51:52.308686 np0039776312 nova-compute[65944]:     </video>

  
  that means that nova will not report the qxl video model trait and as a result if the 
  image_metadata_prefilter is enabled it will correctly prevent vms that request qxl form being scheduled to host that do not support it.

  this however does not protect form the config driven behavior that
  sets the default to qxl if speice is enabled.

  historically this was done because qxl was a spice optimised video
  model offering richer graphics vs cirros or VGA.

  today virtio is our general default and it provides a richer feature
  set then qxl so we should just remove the special casing for spice and
  default it to virtio as well.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2097529/+subscriptions



Follow ups