Bug 1038028

Summary: virt-viewer cannot connect all displays if configure ram of qxl with large size
Product: Red Hat Enterprise Linux 6 Reporter: CongDong <codong>
Component: spice-serverAssignee: Default Assignee for SPICE Bugs <rh-spice-bugs>
Status: CLOSED NOTABUG QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.5CC: cfergeau, codong, dblechte, dyuan, juzhou, marcandre.lureau, mkenneth, mzhan, rbalakri, tzheng, uril
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-30 15:48:00 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:
Attachments:
Description Flags
screenshot for 64MB ram and vram
none
screenshot for 128MB ram and vram none

Description CongDong 2013-12-04 09:47:21 UTC
Description of problem:
If I configure the ram and vram size of qxl with a small size, like 32MB,
virt-viewer can connect all the displays of the guest.
If I configure the guest with default size, just 3 displays works well,
virt-viewer cannot the other one.
And the problem will get more serious with increase te size larger.


Version-Release number of selected component (if applicable):
# rpm -qa virt-viewer spice*
spice-glib-0.20-11.el6.x86_64
spice-server-0.12.4-6.el6.x86_64
spice-gtk-0.20-11.el6.x86_64
spice-gtk-python-0.20-11.el6.x86_64
virt-viewer-0.5.6-8.el6.x86_64
spice-vdagent-0.14.0-2.el6.x86_64
spice-client-0.8.2-15.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Prepare a windows xp guest with spice + 4 qxl video devices
2. Install rhev-guest-tools-iso in guest
3. Make sure the ram and varm size in xml is default size (64MB):
# virsh dumpxml winxp
...
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <alias name='video1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </video>
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <alias name='video2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </video>
    <video>
      <model type='qxl' ram='65536' vram='65536' heads='1'/>
      <alias name='video3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </video>
...

4. connect the vm with virt-viewer, and open all the displays
# virt-viewer $vm
View -> Displays, check on all the displays

5. Check the "Display adapters" status in "Device manager" in the xp guest
6. Change the ram and vram to 32768(32MB),  repeat step4 and step5
7. Change the ram and vram to 131072(128MB), repeat step4 and step5


Actual results:
Step 4, display 2 cannot be connected, keep "waiting for display 2..."
Step 5, The second "Red Hat QXL GPU" cannot work well, open it, the stats said:
"This device cannot find enough free resources that it can use.(Code 12)
 If you want to use this device, you will need to disable one of the other devices on this system."
Step 6, all the displays work well.
Step7, just one works well.

Expected results:
All the displays should works well if configure the size with 128M.

Additional info:
win7 guest got the same problem.

Comment 1 CongDong 2013-12-04 09:51:00 UTC
Created attachment 832518 [details]
screenshot for 64MB ram and vram

Comment 2 CongDong 2013-12-04 09:51:54 UTC
Created attachment 832528 [details]
screenshot for 128MB ram and vram

Comment 4 Uri Lublin 2014-03-24 11:00:57 UTC
I think this is not-a-bug.

Memory Space is limited.
I think that for 32 bit Windows guests there are 512MB or less for devices (mapped memory of PCI devices bar).
So 4 * 128MB already fill up the whole space, but there are other devices, and more memory for wxl too.

I think it's similar to running a Windows XP with 8GB of RAM, and noticing it uses less than 4GB.

Comment 5 Marc-Andre Lureau 2014-06-04 13:51:32 UTC
CongDong, do you observe similar behaviour with win7 or this is xp-only? (and thus more an old OS limitiation)

Comment 6 CongDong 2014-06-05 02:40:36 UTC
(In reply to Marc-Andre Lureau from comment #5)
> CongDong, do you observe similar behaviour with win7 or this is xp-only?
> (and thus more an old OS limitiation)

Both win7 and xp can get the problem.
Tested with virt-viewer-0.6.0-4.el6.

Comment 8 Uri Lublin 2015-03-30 10:25:08 UTC
For Windows VMs (WinXP and Win7) with 4 qxl devices, using
ram=64MB and vram=32MB works (also depends on other devices).
This is what RHEV-M (vdsm) does.