Red Hat Bugzilla – Bug 1181052
update default vgamem size from 8 MiB to 16 MiB
Last modified: 2015-03-05 02:48:51 EST
Description of problem: By implementing new feature requested by BZ 1076098 I've accidentally set the default vgamem to 8MiB instead of 16MiB as it's defined also in QEMU code. How reproducible: 100% Steps to Reproduce: 1. create a guest with libvirt older than libvirt-1.2.8-9.el7 there is no "vgamem" in xml and QEMU will use its default 16 MiB 2. update libvirt to libvirt-1.2.8-9.el7 or newer 3. libvirt will add "vgamem" into xml with value == 8196 KiB Additional info: This could be a regression for users with guest's display resolution higher then 1920x1080, for example 1920x1200 is too large for "vgamem" == 8 MiB.
Upstream patch posted: https://www.redhat.com/archives/libvir-list/2015-January/msg00305.html
Upstream commit: commit 0e502466acb84aa05dead1cbe23e6debf58f4ff1 Author: Pavel Hrdina <phrdina@redhat.com> Date: Mon Jan 12 13:18:46 2015 +0100 qxl: change the default value for vgamem_mb to 16 MiB The default value should be 16 MiB instead of 8 MiB. Only really old version of upstream QEMU used the 8 MiB as default for vga framebuffer. Without this change if you update your libvirt where we introduced the "vgamem" attribute for QXL video device the value will be set to 8 MiB, but previously your guest had 16 MiB because we didn't pass any value to QEMU command line which means QEMU used its own 16 MiB as default. This will affect all users with guest's display resolution higher than 1920x1080. Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
I can reproduce this issue with libvirt-1.2.8-12.el7: 1.prepare a vm have qxl settings(host is 7.0.z libvirt): <video> <model type='qxl' ram='4' vram='4' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 2.start the guest and check the xml(both active and shutoff) # virsh dumpxml r6 <video> <model type='qxl' ram='4' vram='4' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> # virsh dumpxml r6 --inactive <video> <model type='qxl' ram='4' vram='4' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 3.update to libvirt-1.2.8-12.el7: yum update rhel7.1/* 4.check the running guest xml and shutoff xml: # virsh dumpxml r6 --inactive <video> <model type='qxl' ram='4' vram='4' vgamem='8192' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> # virsh dumpxml r6 <video> <model type='qxl' ram='4' vram='4' vgamem='8192' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> And verify this bug with libvirt-1.2.8-13.el7: 1.prepare a vm have qxl settings(host is 7.0.z libvirt): <video> <model type='qxl' ram='4' vram='4' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 2.start the guest and check the xml(both active and shutoff) # virsh dumpxml r6 <video> <model type='qxl' ram='4' vram='4' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> # virsh dumpxml r6 --inactive <video> <model type='qxl' ram='4' vram='4' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 3.update to libvirt-1.2.8-13.el7: # yum update 4.check the running guest xml and shutoff xml: # virsh dumpxml r6 <video> <model type='qxl' ram='4' vram='4' vgamem='16384' heads='1'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> # virsh dumpxml r6 --inactive <video> <model type='qxl' ram='4' vram='4' vgamem='16384' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> 5. and try to remove vgamem and then this value will be 16384 after edit: # virsh edit r6 Domain r6 XML configuration edited. # virsh dumpxml r6 --inactive <video> <model type='qxl' ram='4' vram='4' vgamem='16384' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video>
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, 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://rhn.redhat.com/errata/RHSA-2015-0323.html