Bug 1181052

Summary: update default vgamem size from 8 MiB to 16 MiB
Product: Red Hat Enterprise Linux 7 Reporter: Pavel Hrdina <phrdina>
Component: libvirtAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.1CC: dyuan, jdenemar, juzhang, lhuang, lmiksik, mazhang, rbalakri, wzhang, zhwang
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-1.2.8-13.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:48:51 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 Pavel Hrdina 2015-01-12 09:52:24 UTC
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.

Comment 3 Pavel Hrdina 2015-01-12 13:56:17 UTC
Upstream patch posted:

https://www.redhat.com/archives/libvir-list/2015-January/msg00305.html

Comment 4 Pavel Hrdina 2015-01-12 13:57:15 UTC
Upstream commit:

commit 0e502466acb84aa05dead1cbe23e6debf58f4ff1
Author: Pavel Hrdina <phrdina>
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>

Comment 7 Luyao Huang 2015-01-19 08:51:29 UTC
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>

Comment 9 errata-xmlrpc 2015-03-05 07:48:51 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, 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