Bug 2036300

Summary: video heads can be configured for 'bochs_display' even max_outputs is not supported
Product: Red Hat Enterprise Linux 9 Reporter: Lili Zhu <lizhu>
Component: libvirtAssignee: Peter Krempa <pkrempa>
libvirt sub component: General QA Contact: Lili Zhu <lizhu>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: fjin, jdenemar, jtomko, pkrempa, virt-maint, xuzhang
Version: 9.0Keywords: Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-8.1.0-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:03:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version: 8.1.0
Embargoed:

Description Lili Zhu 2021-12-31 04:13:14 UTC
Description of problem:
video heads configured even max_outputs is not supported 


Version-Release number of selected component (if applicable):
libvirt-7.10.0-1.el9.x86_64

How reproducible:
100%

Steps to Reproduce:
1. prepare a guest with the following xml
...
   <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='bochs' vram='16384' heads='5' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
...

2. start the guest
# virsh start avocado-vt-vm1
Domain 'avocado-vt-vm1' started

3. check the qemu cmd line
-device {"driver":"bochs-display","id":"video0","vgamem":16777216,"bus":"pcie.0","addr":"0x1"} 
(no max_outputs shown here)
 

Expected results:
Multi screens are only supported with spice+qxl and spice+virtio. When the graphics and video types do not support multi screens, should report error when define or start such guests

Additional info:

Comment 1 Peter Krempa 2022-01-19 15:59:47 UTC
Fixed upstream:

commit 1652babf15cea63323411c450c408848f96e5866
Author: Peter Krempa <pkrempa>
Date:   Tue Jan 18 16:59:35 2022 +0100

    qemuValidateDomainDeviceDefVideo: Reject non-default video head count for devices not supporting it
    
    Only QXL and virtio-vga actually propagate the 'heads' attribute as
    'max_outputs' to the commandline of qemu. Reject the setting when
    non-default value is used for any other video type.
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2036300
    Signed-off-by: Peter Krempa <pkrempa>
    Reviewed-by: Ján Tomko <jtomko>

v8.0.0-109-g1652babf15

Comment 2 Lili Zhu 2022-03-19 14:24:32 UTC
Tested with:
libvirt-daemon-8.2.0-1.fc35.x86_64

Tried to define a guest with the following xml snippet
  <video>
      <model type='bochs' heads='4'/>
      <alias name='video0'/>
    </video>

# virsh define avocado-vt-vm1.xml
error: Failed to define domain from avocado-vt-vm1.xml
error: unsupported configuration: video type 'bochs' doesn't support multiple 'heads'

Also tested with cirrus, vga, ramfb types, also reported the similar error.

Comment 5 Lili Zhu 2022-05-03 11:01:53 UTC
Verify this bug with:
libvirt-8.2.0-1.el9.x86_64

The verification steps are the same with that in Comment #2

As the testing result matches with the expected result, mark the bug as verified.

Comment 7 errata-xmlrpc 2022-11-15 10:03:03 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Low: libvirt security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:8003