Red Hat Bugzilla – Bug 865733
Using wrong display channel for one of qxl devices (RHEL6.4 guest)
Last modified: 2012-11-28 08:41:25 EST
Created attachment 625866 [details]
Traffic between client and host
Description of problem:
Connecting to a rhel6.4 with multiple qxl devices isn't working properly -- all data are sent just over a single channel, even though it seems the connection was established properly.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Start a guest VM with the mentioned packages and add these command line parameters
-vga qxl -global qxl-vga.vram_size=67108864 -device qxl,id=video1,vram_size=67108864,bus=pci.0,addr=0x7 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0
2. Connect to your VM using remote-viewer
remote-viewer is aware just about a single channel
all data are being sent just through one display channel
there should be a separate channel for each of the devices
How is the guest Xorg configured? Can you provide spice client SPICE_DEBUG=1 dump?
Since xorg-x11-drv-qxl-0.1.0, spice is able to use a single display channel for multiple monitors. This is actually a feature, not a bug :)
Created attachment 649698 [details]
Output of remote-viewer with SPICE_DEBUG=1
Created attachment 649699 [details]
Playing this might be a bit tricky -- it's larger than my framebuffer, it might work for you though.
If you can't play it, ping me on irc, I will resample it.
**One more thing -- when I disconnected one of my physical monitors it worked fine, it also works fine with someone, who has smaller total resolution (or at least screens of identical size) -- could the problem be in 2 monitors on client, each having a different resolution?
Created attachment 649789 [details]
The good screencast
Well, ok -- this is the better screencast, it's taken at 20 FPS. You can see, what happens, when I enter fullscreen -- both available monitors are resized to the same resolution. The remote-viewer window, which should have display #2 is emtpy and waiting for connection, whereas display #1 doesn't even display the whole area. (had to restart vdagent a few times, which you already fixed ( I just don't have the patch yet) -- thanks!)
eh, I am lost, I don't understand what's going on from the video. I can see from the log that things are normal. And I can also see that the vdagent is not running from the video, which is inded a different bug. In the meantime, that bug title "Using wrong display channel for one of qxl devices" is very confusing, as you are using MonitorConfig / Xrandr, You can't have both several devices and monitorconfig support, this isn't supported. Also you can't expect dynamic MonitorConfig to work when the agent isn't running.
I would suggest closing this bug and reopening with something clearly reproduceable within the limits of what we support (a single qxl device, dynamic config with agent).
Well, ok -- let's clear things out, the title is probably a bit misleading.
Parameters of VM for graphics were:
-vga qxl -global qxl-vga.vram_size=67108864 -device qxl,id=video1,vram_size=67108864,bus=pci.0,addr=0x7
+the regular vdagent
which I believe is supported and it should be configured by the agent.
So what I do is -- start the VM with the above mentioned parameters, and use remote-viewer to open additinal display; which should be done over vdagent, right? It opens the channel just right.
But then I check if vdagent is running and manually start it -- it crashed after opening the second channel (from about 7 seconds into the video) and then I make it run fullscreen. The result is what you can see over there. Both of those display channels are displayed in a single remote-viewer window, and just part of the first one is visible, because resolutions are all wrong (you can't see the clock on the top panel, because the first display is too wide); the second remote-viewer window is just "Waiting for display 2..." The rest is not all that important.
So to sum it up -- i either have the command line wrong or the merge was caused because of vdagent crashing before the displays were set up properly; or remote-viewer should be separating the channels (because at the very least this is clearly wrong)
*** This bug has been marked as a duplicate of bug 881020 ***