Bug 1275297
Summary: | Fullscreen multi monitor setup: virt-viewer doesn't adjust resolution for second monitor | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Andrei Stepanov <astepano> | ||||||||
Component: | virt-viewer | Assignee: | Virt Viewer Maint <virt-viewer-maint> | ||||||||
Status: | CLOSED DUPLICATE | QA Contact: | Virtualization Bugs <virt-bugs> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 7.3 | CC: | astepano, dblechte, fidencio, fziglio, juzhou, mxie, mzhan, pgrunt, rbalakri, tpelka, tzheng, xiaodwan, ylavi | ||||||||
Target Milestone: | rc | ||||||||||
Target Release: | 7.3 | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2016-03-15 16:28:58 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: | |||||||||||
Bug Depends On: | 1194354 | ||||||||||
Bug Blocks: | |||||||||||
Attachments: |
|
I found a way to reproduce a bug without RHEV-M. But, it is necessary to have a guest with 3 real monitors. The behavior is a bit different: no one from 3 displays adjust their resolution in fullscreen mode. It is also 100% reproducible. Steps: 1. Run guest: /usr/libexec/qemu-kvm -m 1024 -spice port=$SRCPORT,disable-ticketing,addr=$SRCIPADDR,seamless-migration=on -vga qxl -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent,debug=0 -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 -readconfig /etc/qemu-kvm/ich9-ehci-uhci.cfg -chardev spicevmc,name=usbredir,id=usbredirchardev1 -device usb-redir,chardev=usbredirchardev1,id=usbredirdev1,debug=3 $GUEST_IMAGE_PATH -monitor stdio -usb -device intel-hda -device hda-duplex 2. Connect to VM with remote-viewer spice://x.x.x.x:3000 3. Enable 3 monitors in remote-viewer 4. Move each display to corresponding client's monitor 5. Try to switch to full screen View->Full screen 6. No one of virt-viewer's displays adjusts resolution to according monitor's resolution. Logs for remote-viewer follow: Created attachment 1086530 [details]
remote-viewer log
It seems, setup where client has more then 2 real monitors is quite unstable (Linux guest). There are no enough video memory for Linux guests. It is a serious problem for multi-monitor client. Next line somehow helps in certain cases: -vga qxl -global qxl-vga.ram_size=134217728 -global qxl-vga.vram_size=134217728 -global qxl-vga.vgamem_mb=32 Yeah, another issue related to the amount of memory used for ram and vram size. I'm setting Bug 1194354 as dependency of this one. Hi,Yaniv I noticed you've added "Target Release" as 7.2 on this bug and bug 1273055,would these 2 bugs be fixed on rhel7.2? As rhel7.2 release date is near,if so,when will be the new build coming?thanks. (In reply to tingting zheng from comment #6) > Hi,Yaniv > > I noticed you've added "Target Release" as 7.2 on this bug and bug > 1273055,would these 2 bugs be fixed on rhel7.2? As rhel7.2 release date is > near,if so,when will be the new build coming?thanks. I just matched the flag to target for report queries. I don't see any ack for these, so not sure what timeline these will be fixed in. (In reply to Yaniv Dary from comment #7) > (In reply to tingting zheng from comment #6) > > Hi,Yaniv > > > > I noticed you've added "Target Release" as 7.2 on this bug and bug > > 1273055,would these 2 bugs be fixed on rhel7.2? As rhel7.2 release date is > > near,if so,when will be the new build coming?thanks. > > I just matched the flag to target for report queries. I don't see any ack > for these, so not sure what timeline these will be fixed in. ok,got it. @Fabiano Would you pls help to check this bug and bug 1273055,if it will not fixed on rhel7.2,maybe the flag need to changed to rhel7.3?thanks. (In reply to Andrei Stepanov from comment #4) > It seems, setup where client has more then 2 real monitors is quite unstable > (Linux guest). There are no enough video memory for Linux guests. > > It is a serious problem for multi-monitor client. > > Next line somehow helps in certain cases: > > -vga qxl -global qxl-vga.ram_size=134217728 -global > qxl-vga.vram_size=134217728 -global qxl-vga.vgamem_mb=32 1.for 3 or 4 displays the RHEVM sets the ram size to 256MB 2. Be sure that all monitors has the resolution 2560x1600 or below can you confirm? Fabiano Fidêncio has saw my setup. It was a setup with 4 monitors: Native resolutions are: One FullHD: 1080x1920 Two Dell's 1907fpt: 1280x1024 One Dell's 1708fp: 1280x1024 Andrei, I saw your setup. But the David's question still stands. As far as I understand you were running RHEVM set up to use 2 monitors and then turning on the 3rd and 4th display. Is it the case? When running RHEVM set up to use 4 monitors, are you still able to reproduce the same problem? I can confirm that I can reproduce bug for next cases: 1. guest VM has been assigned 2 monitors in RHEV-M webportal. 2. guest VM has been assigned 4 monitors in RHEV-M webportal. Bug is reproducible for: VM->Edit->Console->Monitors == 1,2,4 (`Single PCI' is checked) (In reply to Andrei Stepanov from comment #13) > I can confirm that I can reproduce bug for next cases: > > 1. guest VM has been assigned 2 monitors in RHEV-M webportal. This case is not a bug as the memory was allocated for 2 displays, and you added more. Base on your comment #4 > 2. guest VM has been assigned 4 monitors in RHEV-M webportal. This is a bug. > > Bug is reproducible for: VM->Edit->Console->Monitors == 1,2,4 (`Single PCI' > is checked) Seems that we are dealing with 2 different problems here. 1) 2 displays: virt-viewer cannot adjust resolution for the 2nd fullscreen display The here is the amount of memory being set to vram. At least in the RHEVM-3.6 instance being used, I found out that although the ram size being set correctly (64MB per head), the vram size is always set as 32MB. The correct amount of memory that has to be set for vram is 32MB *per* *head*. I've modified the vsdm hook (done and) used by astepano in order to set the correct amount of memory for vram and I've been able to test that it works pretty well for 2 monitors. So, for this, I'd suggest to move this bug to ovirt/libvirt/vsdm/whatever is responsible for this part. 2) 4 displays: virt-viewer cannot adjust resolution for 3rd (and 4th) fullscreen display Here, considering the problem 1 has been solved and that the correct amount of ram is being used, we stil have this problem happening. From now on I will be focusing on this problem ... While testing situation 2) I saw more 2 bugs happening: 3) Parts of one display shows, in a smaller size, another display. When you click on that part, the commands actually end up in the smaller display (in the window that shows this display). Kinda tricky to explain :-\ 4) virt-viewer is consuming 70~80% of the memory when using 4 monitors. Andrei, with the hook installed to /usr/libexec/vdsm/hooks/before_vm_start/53_spice, I did some changes there to use the proper amount of ram/vram according to the number of heads. Can you confirm that the situation 1) is solved by this? Can you confirm that situation 2) is not solved yet? Can you test if the problem 3) also happens to you? We can sit together and try to reproduce this issue. 4) Can you check this one as well? If situation 1) is really solved by the hook, please, open a bug in the right component and I will keep using this bug to handle the situation 2). If situations 3) or/and 4) happens, please, open a new bug for them. Created attachment 1091730 [details]
Hook to setup memory for vdsm
Put to /usr/libexec/vdsm/hooks/before_vm_start/
chmod 755 it
Preface: client is RHEL7.2 with 4 real monitors. Case 1: virt-viewer with 2 active displays. VM guest has been configured in RHEV-M for 2 monitors. Without hook: <model type='qxl' ram='131072' vram='32768' vgamem='16384' heads='2'/> ram_size=134217728,vram_size=33554432,vgamem_mb=16 Monitor second monitor doesn't adjust resolution in fullscreen. With hook: <model type='qxl' ram='131072' vram='65536' vgamem='16384' heads='2'/> ram_size=134217728,vram_size=67108864,vgamem_mb=16 Monitor second monitor doesn't adjust resolution in fullscreen. So, this is definitely bug against libvirt/vdsm/ovirt Case 2: virt-viewer with 3 active displays. VM guest has been configured in RHEV-M for 4 monitors. Without hook: <model type='qxl' ram='262144' vram='32768' vgamem='16384' heads='4'/> ram_size=268435456,vram_size=33554432,vgamem_mb=16 With hook: <model type='qxl' ram='262144' vram='131072' vgamem='16384' heads='4'/> -device qxl-vga,id=video0,ram_size=268435456,vram_size=134217728,vgamem_mb=16 0. Make hook active & open three VV displays. 1. Put first VV display to full screen. 2. Put second VV display to full screen. Result: parts of one display shows, in a smaller size, another display. Case 3: virt-viewer with 4 active displays. Start pushing VV displays to fullscreen. Order doesn't matter. Result: virt-viewer cannot adjust resolution for latest-pushed fullscreen displays. Andrei, can you do the last round of tests for us? I have changed the hook, again. Now it's setting up: ramsize: 64MB * number of heads. vramsize: 32MB * number of heads. vgamem = 16MB * number of heads. With this setup, I can have 4 FullHD monitors fullscreen without problem and then we can just re-assign this bug to vdsm/libvirt guys. Can you confirm if it works for you? Please, remember to do chmod 755 in the 53_spice file. With above hook VM starts with next parameters: <model type='qxl' ram='262144' vram='131072' vgamem='65536' heads='4'/> ram_size=268435456,vram_size=134217728,vgamem_mb=64 Client with 4 monitors works well with this VM. Client can push all four displays to dedicated monitors. In fullscreen mode virt-viewer adjusts resolution to monitors' native resolution. |
Created attachment 1086521 [details] remote-viewer log remote-viewer should adjust resolution of virtual display to real monitor's resolution in full-screen mode, but it doesn't Bug is 100% reproducible Client: virt-viewer-2.0-6.el7.x86_64 Guest: spice-vdagent-0.14.0-10.el7.x86_64 xorg-x11-drv-qxl-0.1.1-18.el7.x86_64 3.10.0-323.el7.x86_64 Host: qemu-kvm-rhev-2.3.0-31.el7.x86_64 kernel is 3.10.0-324.el7.x86_64 It is necessary a guest with two real monitors. Steps to Reproduce: 1. Go to RHEV-M web portal 2. Shutdown guest os 3. Start-up guest os 4. Wait some time 5. Unsure in console settings for VM option "Open in Full Screen" is _UNCHECKED_ 5. Press "Console" button to connect to VM 6. Should appear one virt-viewer window 7. Login to guest OS 8. Activate second window in virt-viewer: View->Displays->Check Display 2 9. Place each virt-viewer window to client's monitor. 10. For each widows press: View->FullScreen Last chosen virt-viewer window goes to fullscreen but doesn't adjust resolution to clients monitor. See virt-viewer logs