Bug 1240820

Summary: VMs default to 1920x1200 resolution, can cause GNOME start to fail due to lack of VRAM
Product: [Fedora] Fedora Reporter: Adam Williamson <awilliam>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: agedosier, berrange, clalancette, crobinso, itamar, jforbes, joe, laine, libvirt-maint, veillard, virt-maint
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 1.2.18-1.fc23 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-09-12 14:54:25 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:
Embargoed:

Description Adam Williamson 2015-07-07 20:28:05 UTC
I actually have no idea what's changed here - could be libvirt or qemu or spice or something - but starting at virt-manager.

Since I updated my desktop to Rawhide, I think, VMs seem to want to start up at 1920x1200 resolution, not 1024x768 as before. This is kind of an impractical size, but more importantly, in one of my VMs, it actually causes GNOME to fail apparently due to lack of VRAM:

Jul 07 16:20:48 localhost /usr/libexec/gdm-x-session[1389]: (II) qxl(0): Allocate new frame buffer 1920x1200 stride
Jul 07 16:20:48 localhost kernel: [drm:qxl_crtc_mode_set [qxl]] *ERROR* Mode doesn't fit in vram size (vgamem)
Jul 07 16:20:48 localhost kernel: [drm:drm_crtc_helper_set_config [drm_kms_helper]] *ERROR* failed to set mode on [CRTC:21]
Jul 07 16:20:48 localhost gnome-session[1456]: X Error of failed request:  BadMatch (invalid parameter attributes)
Jul 07 16:20:48 localhost gnome-session[1456]: Major opcode of failed request:  139 (RANDR)
Jul 07 16:20:48 localhost gnome-session[1456]: Minor opcode of failed request:  7 (RRSetScreenSize)
Jul 07 16:20:48 localhost gnome-session[1456]: Serial number of failed request:  177
Jul 07 16:20:48 localhost gnome-session[1456]: Current serial number in output stream:  178
Jul 07 16:20:48 localhost gnome-session[1456]: gnome-session[1456]: WARNING: App 'gnome-shell.desktop' exited with code 1
Jul 07 16:20:48 localhost gnome-session[1456]: WARNING: App 'gnome-shell.desktop' exited with code 1
Jul 07 16:20:48 localhost /usr/libexec/gdm-x-session[1389]: (EE) qxl(0): failed to set mode: Invalid argument(II) qxl(0): Allocate new frame buffer 1920x1200 stride
Jul 07 16:20:48 localhost kernel: [drm:qxl_crtc_mode_set [qxl]] *ERROR* Mode doesn't fit in vram size (vgamem)
Jul 07 16:20:48 localhost kernel: [drm:drm_crtc_helper_set_config [drm_kms_helper]] *ERROR* failed to set mode on [CRTC:21]
Jul 07 16:20:48 localhost gnome-session[1456]: X Error of failed request:  BadMatch (invalid parameter attributes)
Jul 07 16:20:48 localhost gnome-session[1456]: Major opcode of failed request:  139 (RANDR)
Jul 07 16:20:48 localhost gnome-session[1456]: Minor opcode of failed request:  7 (RRSetScreenSize)
Jul 07 16:20:48 localhost gnome-session[1456]: Serial number of failed request:  177
Jul 07 16:20:48 localhost gnome-session[1456]: Current serial number in output stream:  178
Jul 07 16:20:48 localhost gnome-session[1456]: gnome-session[1456]: WARNING: App 'gnome-shell.desktop' exited with code 1
Jul 07 16:20:48 localhost gnome-session[1456]: WARNING: App 'gnome-shell.desktop' exited with code 1
Jul 07 16:20:48 localhost gnome-session[1456]: gnome-session[1456]: WARNING: App 'gnome-shell.desktop' respawning too quickly
Jul 07 16:20:48 localhost gnome-session[1456]: WARNING: App 'gnome-shell.desktop' respawning too quickly
Jul 07 16:20:48 localhost gnome-session[1456]: Unrecoverable failure in required component gnome-shell.desktop

On my other VM it works. The VM where GNOME startup fails has this line:

      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>

whereas the VM where GNOME startup works has this:

      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='2'/>

so I guess the difference is the 'vgamem' value. But those values were a virt-manager or libvirt or something default, they came in when I created the VM (I did not set them manually) and virt-manager does not offer a UI to change the values. So this 1920x1200 resolution is too high for what must have been the default qxl adapter configuration at least at *some* point. I just removed and re-added the QXL adapter from that VM and it now has 16384 for vgamem, so I guess the default value was bumped from 8192 to 16384 at some point.

virt-manager-1.2.1-2.fc23.noarch
libvirt-1.2.16-2.fc23.x86_64
qemu-2.3.0-15.fc23.x86_64
spice-server-0.12.5-8.fc23.x86_64

Comment 1 Jan Kurik 2015-07-15 13:20:38 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 23 development cycle.
Changing version to '23'.

(As we did not run this process for some time, it could affect also pre-Fedora 23 development
cycle bugs. We are very sorry. It will help us with cleanup during Fedora 23 End Of Life. Thank you.)

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora23

Comment 2 Cole Robinson 2015-08-10 20:22:50 UTC
I think this is a libvirt issue that should be fixed in 1.2.18:

commit a5bdb8459a8187cba3e1d41036de0bd0ae027c85
Author: Martin Kletzander <mkletzan>
Date:   Wed Jul 22 09:59:48 2015 +0200

    Revert "qemu: Use heads parameter for QXL driver"

You'll probably need to remove the bad <video> XML and readd QXL with

<video><model type='qxl'/></video>

Comment 3 Fedora Update System 2015-08-10 20:23:30 UTC
libvirt-1.2.18-1.fc23 has been submitted as an update for Fedora 23.
https://admin.fedoraproject.org/updates/FEDORA-2015-13113/libvirt-1.2.18-1.fc23

Comment 4 Raphael Groner 2015-08-28 13:04:51 UTC
*** Bug 1093998 has been marked as a duplicate of this bug. ***

Comment 5 Raphael Groner 2015-08-28 13:06:58 UTC
Especially Gtk2 based guests seem to suffer from this restriction in somewhere the complex SPICE logic.

Comment 6 Fedora Update System 2015-09-01 03:37:21 UTC
libvirt-1.2.18-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 7 Adam Williamson 2015-09-08 21:08:16 UTC
Sorry, but this doesn't seem to be fixed. I have libvirt-1.2.18-1.fc23. I edited my VM's XML (with 'virsh edit') as suggested. After exiting virsh, the block becomes this:

    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </video>

and on booting F23 Beta TC4 Workstation live, it still defaults to 1920x1200 resolution.

Comment 8 Cole Robinson 2015-09-12 14:54:25 UTC
Yeah I see the big resolution issue. There's another bug tracking that as well: https://bugzilla.redhat.com/show_bug.cgi?id=1252677

Let's keep this closed since it was also about the 'not enough vram' issue which _is_ fixed. So please jump on that other bug, I'll comment there in a bit