Bug 2000845

Summary: RFE: Remove SGA, deprecate cirrus, and set defaults for QEMU machine-types in RHEL9
Product: Red Hat Enterprise Linux 9 Reporter: Miroslav Rezanina <mrezanin>
Component: qemu-kvmAssignee: Miroslav Rezanina <mrezanin>
qemu-kvm sub component: General QA Contact: Xueqiang Wei <xuwei>
Status: CLOSED ERRATA Docs Contact: Jiri Herrmann <jherrman>
Severity: medium    
Priority: urgent CC: berrange, coli, jinzhao, juzhang, kkiwi, kraxel, mrezanin, pgm-rhel-tools, pvlasin, rjones, virt-maint, ymankad, zhguo
Version: 9.0Keywords: FutureFeature, Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-6.1.0-3.el9 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: 1995807 Environment:
Last Closed: 2022-05-17 12:24:17 UTC Type: Feature Request
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1995807, 2002325, 2002392, 2003092    
Bug Blocks:    

Comment 1 Miroslav Rezanina 2021-09-03 07:34:16 UTC
This is clone for syncing the fix from RHEL 9.0.0 Beta to RHEL 9.0.0 as the fix is included after branching RHEL 9.0.0.

Comment 3 Richard W.M. Jones 2021-09-08 14:36:58 UTC
libguestfs uses sga, please do not remove it.

Comment 4 Xueqiang Wei 2021-09-10 08:14:33 UTC
sga device has been removed on qemu-kvm-6.0.0-13.el9_b.1, according to Comment 3, we need to enable it, right?


qemu-kvm-6.0.0-12.el9:
# /usr/libexec/qemu-kvm -device ?
Display devices:
name "bochs-display", bus PCI
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "ramfb", bus System, desc "ram framebuffer standalone device"
name "secondary-vga", bus PCI
name "sga", bus ISA, desc "Serial Graphics Adapter"
name "VGA", bus PCI
name "virtio-gpu-device", bus virtio-bus
name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
name "virtio-vga", bus PCI


qemu-kvm-6.0.0-13.el9_b.1
# /usr/libexec/qemu-kvm -device ?
Display devices:
name "bochs-display", bus PCI
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "ramfb", bus System, desc "ram framebuffer standalone device"
name "secondary-vga", bus PCI
name "VGA", bus PCI
name "virtio-gpu-device", bus virtio-bus
name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
name "virtio-vga", bus PCI

Comment 5 Miroslav Rezanina 2021-09-10 08:22:55 UTC
(In reply to Xueqiang Wei from comment #4)
> sga device has been removed on qemu-kvm-6.0.0-13.el9_b.1, according to
> Comment 3, we need to enable it, right?
> 
> 
> qemu-kvm-6.0.0-12.el9:
> # /usr/libexec/qemu-kvm -device ?
> Display devices:
> name "bochs-display", bus PCI
> name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
> name "ramfb", bus System, desc "ram framebuffer standalone device"
> name "secondary-vga", bus PCI
> name "sga", bus ISA, desc "Serial Graphics Adapter"
> name "VGA", bus PCI
> name "virtio-gpu-device", bus virtio-bus
> name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
> name "virtio-vga", bus PCI
> 
> 
> qemu-kvm-6.0.0-13.el9_b.1
> # /usr/libexec/qemu-kvm -device ?
> Display devices:
> name "bochs-display", bus PCI
> name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
> name "ramfb", bus System, desc "ram framebuffer standalone device"
> name "secondary-vga", bus PCI
> name "VGA", bus PCI
> name "virtio-gpu-device", bus virtio-bus
> name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
> name "virtio-vga", bus PCI

Nope, this is about forwarding change from qemu-kvm-6.0.0-13.el9_b.1 to qemu-kvm-6.1.0-* builds (from 9-Beta to 9.0.0). You can see sga device present in qemu-kvm-6.1.0-1.el9.

Comment 7 Xueqiang Wei 2021-09-14 19:58:54 UTC
(In reply to Miroslav Rezanina from comment #5)
......
> Nope, this is about forwarding change from qemu-kvm-6.0.0-13.el9_b.1 to
> qemu-kvm-6.1.0-* builds (from 9-Beta to 9.0.0). You can see sga device
> present in qemu-kvm-6.1.0-1.el9.


Tested with qemu-kvm-6.1.0-2.el9, sga device has been re-enabled. Thanks.

# /usr/libexec/qemu-kvm -device ?
Display devices:
name "bochs-display", bus PCI
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "ramfb", bus System, desc "ram framebuffer standalone device"
name "secondary-vga", bus PCI
name "sga", bus ISA, desc "Serial Graphics Adapter"
name "VGA", bus PCI
name "virtio-gpu-device", bus virtio-bus
name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
name "virtio-vga", bus PCI


# libguestfs-test-tool --qemu /usr/libexec/qemu-kvm 
     ************************************************************
     *                    IMPORTANT NOTICE
     *
     * When reporting bugs, include the COMPLETE, UNEDITED
     * output below in your bug report.
     *
     ************************************************************
PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
XDG_RUNTIME_DIR=/run/user/0
SELinux: Permissive
guestfs_get_append: (null)
guestfs_get_autosync: 1
guestfs_get_backend: libvirt
guestfs_get_backend_settings: []
guestfs_get_cachedir: /var/tmp
guestfs_get_hv: /usr/libexec/qemu-kvm
guestfs_get_memsize: 1280
guestfs_get_network: 0
guestfs_get_path: /usr/lib64/guestfs
guestfs_get_pgroup: 0
guestfs_get_program: libguestfs-test-tool
guestfs_get_recovery_proc: 1
guestfs_get_smp: 1
guestfs_get_sockdir: /tmp
guestfs_get_tmpdir: /tmp
guestfs_get_trace: 0
guestfs_get_verbose: 1
host_cpu: x86_64
Launching appliance, timeout set to 600 seconds.
libguestfs: launch: program=libguestfs-test-tool
libguestfs: launch: version=1.45.6rhel=9,release=12.el9,libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: unix
libguestfs: launch: backend=libvirt
libguestfs: launch: tmpdir=/tmp/libguestfsJu22WN
libguestfs: launch: umask=0022
libguestfs: launch: euid=0
libguestfs: libvirt version = 7006000 (7.6.0)
libguestfs: guest random name = guestfs-9qpyekicooandtk3
libguestfs: connect to libvirt
......
......
guestfsd: => internal_autosync (0x11a) took 0.02 secs
libguestfs: calling virDomainDestroy flags=VIR_DOMAIN_DESTROY_GRACEFUL
libguestfs: closing guestfs handle 0x560990db6b10 (state 0)
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsT1Lv7C
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsL4N9B6
===== TEST FINISHED OK =====

Comment 8 CongLi 2021-09-15 02:30:17 UTC
*** Bug 2003040 has been marked as a duplicate of this bug. ***

Comment 9 Yanan Fu 2021-09-15 03:10:41 UTC
QE bot(pre verify): Set 'Verified:Tested,SanityOnly' as gating/tier1 test pass.

Comment 12 Xueqiang Wei 2021-09-16 22:57:14 UTC
Run the command "-device sga" with qemu-kvm-6.1.0-2.el9, hit the following issue, but not hit it on qemu-kvm-6.1.0-1.el9.


Versions:
seavgabios-bin-1.14.0-7.el9.noarch
seabios-bin-1.14.0-7.el9.noarch
seabios-1.14.0-7.el9.x86_64
sgabios-bin-0.20180715git-8.el9.noarch


run it with qemu-kvm-6.1.0-2.el9:
# /usr/libexec/qemu-kvm -device sga
Could not open option rom 'sgabios.bin': No such file or directory
VNC server running on ::1:5900


run it with qemu-kvm-6.1.0-1.el9:
# /usr/libexec/qemu-kvm -device sga
VNC server running on ::1:5900



Hi Miroslav,

Could you please help check it? Many thanks.

Comment 13 Richard W.M. Jones 2021-09-17 07:14:39 UTC
This bug is the RHEL 9 (not Beta) bug, and we want to remove SGA in
this version.

Comment 14 Xueqiang Wei 2021-09-17 08:56:46 UTC
(In reply to Richard W.M. Jones from comment #13)
> This bug is the RHEL 9 (not Beta) bug, and we want to remove SGA in
> this version.


Hi Richard,

According to Comment 7 and Comment 12, sga device is not removed in qemu-kvm-6.1.0-2.el9. If we indeed remove it, the bug should be failed on_qa, right?

I see the bug was reported against RHEL 9, and we re-enable sga device on RHEL 9 beta. (Tracked by Bug 2002993 - [RHEL 9 Beta] Reenable SGA device)

It is a little confused for the Comment 3, if we remove sga device, how to use libguestfs tool. Please help explanation, many thanks.

Comment 15 Xueqiang Wei 2021-09-17 09:09:28 UTC
(In reply to Xueqiang Wei from comment #14)
> (In reply to Richard W.M. Jones from comment #13)
> > This bug is the RHEL 9 (not Beta) bug, and we want to remove SGA in
> > this version.
> 
> 
> Hi Richard,
> 
> According to Comment 7 and Comment 12, sga device is not removed in
> qemu-kvm-6.1.0-2.el9. If we indeed remove it, the bug should be failed
> on_qa, right?
> 
> I see the bug was reported against RHEL 9, and we re-enable sga device on
> RHEL 9 beta. (Tracked by Bug 2002993 - [RHEL 9 Beta] Reenable SGA device)
> 
> It is a little confused for the Comment 3, if we remove sga device, how to
> use libguestfs tool. Please help explanation, many thanks.

Sorry, I see the bug, Bug 2002325 - Use -machine graphics=off instead of sga device, libguestfs should work well with it.

Just one concern: According to Comment 7 and Comment 12, sga device is not removed in qemu-kvm-6.1.0-2.el9. If we indeed remove it, the bug should be failed on_qa, right?

Comment 16 Miroslav Rezanina 2021-09-17 09:45:57 UTC
This BZ failed qa as there's missing patch for disabling sga device that wasn't part of MR. Need to be added to be fixed.

Comment 17 Richard W.M. Jones 2021-09-17 09:54:08 UTC
For RHEL 9 GA: libguestfs now uses -machine graphics=off, and libvirt
will be similarly modified (although that's not upstream yet).  SGA
should be removed from qemu-kvm.

For RHEL 9 BETA: we need to enable SGA, tracked in bug 2002993.

Comment 18 Xueqiang Wei 2021-09-18 01:44:23 UTC
Hi Richard and Miroslav,

Many thanks. According to your comments, re-assign it. If I was wrong, please correct me. Thanks again.

Comment 24 Yanan Fu 2021-09-26 02:11:55 UTC
QE bot(pre verify): Set 'Verified:Tested,SanityOnly' as gating/tier1 test pass.

Comment 25 Xueqiang Wei 2021-09-27 07:46:58 UTC
According to https://bugzilla.redhat.com/show_bug.cgi?id=1995807#c15 and https://bugzilla.redhat.com/show_bug.cgi?id=1995807#c17, tested this bug on qemu-kvm-6.1.0-3.el9, all work as expected.


kernel-5.14.0-3.el9.x86_64
qemu-kvm-6.1.0-3.el9


1. sga device has been disabled.

# /usr/libexec/qemu-kvm -device ?
Display devices:
name "bochs-display", bus PCI
name "cirrus-vga", bus PCI, desc "Cirrus CLGD 54xx VGA"
name "ramfb", bus System, desc "ram framebuffer standalone device"
name "secondary-vga", bus PCI
name "VGA", bus PCI
name "virtio-gpu-device", bus virtio-bus
name "virtio-gpu-pci", bus PCI, alias "virtio-gpu"
name "virtio-vga", bus PCI

# /usr/libexec/qemu-kvm -device sga -serial stdio
qemu-kvm: -device sga: 'sga' is not a valid device model name

# rpm -qR qemu-kvm-common | grep sgabios
(empty output)


2. Deprecate cirrus
# /usr/libexec/qemu-kvm -device cirrus-vga
qemu-kvm: -device cirrus-vga: warning: 'cirrus-vga' is deprecated, please use a different VGA card instead
VNC server running on ::1:5900

3. check graphics
# /usr/libexec/qemu-kvm -device bochs-display
VNC server running on ::1:5900
# /usr/libexec/qemu-kvm -device VGA
VNC server running on ::1:5900
# /usr/libexec/qemu-kvm -device secondary-vga
VNC server running on ::1:5900
# /usr/libexec/qemu-kvm -machine q35,graphics=off
VNC server running on ::1:5900
# /usr/libexec/qemu-kvm -machine pc,graphics=off
VNC server running on ::1:5900

Comment 26 Xueqiang Wei 2021-09-28 14:24:20 UTC
According to Comment 25, set status to VERIFIED. Thanks.

Comment 30 errata-xmlrpc 2022-05-17 12:24:17 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 (new packages: qemu-kvm), 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/RHBA-2022:2307