Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1030812

Summary: Screen configuration broken after switching from X to tty and back with multiple displays
Product: Red Hat Enterprise Linux 7 Reporter: Milan Barta <mbarta>
Component: kernelAssignee: Rob Clark <rclark>
Status: CLOSED DUPLICATE QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: low Docs Contact:
Priority: unspecified    
Version: 7.0CC: airlied, cfergeau, dblechte, fidencio, jjongsma, kem, marcandre.lureau, mbarta, rbalakri, rclark, tpelka
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-12-11 20:06:41 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:
Attachments:
Description Flags
Screenshot of screen configuration after switching back to X none

Description Milan Barta 2013-11-15 08:38:05 UTC
Created attachment 824355 [details]
Screenshot of screen configuration after switching back to X

Description of problem:
After switching to text console from X and back with multiple displays on, the screen configuration breaks. Display number two shows cloned display number one plus display number two next to it (see the attached screenshot).

Version-Release number of selected component (if applicable):
Host, Client, Guest: RHEL7
spice-server-0.12.4-3.el7.x86_64
spice-gtk3-0.20-6.el7.x86_64
qemu-kvm-1.5.3-19.el7.x86_64
virt-viewer-0.5.7-2.el7.x86_64
spice-vdagent-0.14.0-5.el7.x86_64
xorg-x11-drv-qxl-0.1.1-5.el7.x86_64

How reproducible:
100 % times

Steps to Reproduce:
1. run VM with two displays using remote-viewer
2. switch to tty (using the menu -> send key -> ctrl+alt+f2)
3. switch back to X (using the menu -> send key -> ctrl+alt+f1)

Actual results:
Screen configuration is corrupted. Second display shows cloned display one attached to display two.

Expected results:
Each display is showed in its own window.

Additional info:

Comment 2 Søren Sandmann Pedersen 2014-01-20 21:50:16 UTC
Can you provide the specific qemu-kvm command line that you used?

Comment 3 Milan Barta 2014-01-23 12:45:50 UTC
Yes, I'm running the VM using virt-manager. 
The command line used:

/usr/libexec/qemu-kvm -name rhel7beta -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 4ebd40ec-1e77-49a2-bd89-d65523848043 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/rhel7beta.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/var/lib/libvirt/images/rhel7beta.img,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=23,id=hostnet0,vhost=on,vhostfd=24 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:02:19:1c,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7

Comment 4 Jonathon Jongsma 2014-01-23 15:40:46 UTC
Can you reproduce with virt-viewer 0.5.7-3? It's possible that this is related to bug 1022769...

Comment 5 Milan Barta 2014-01-24 10:00:02 UTC
Yes I can. I've tested this with virt-viewer-0.5.7-4.el7.x86_64 and the bug is still there.

Comment 6 Søren Sandmann Pedersen 2014-03-11 08:16:49 UTC
It *appears* this bug is connected with the following code in spice-gtk3:

    if (c->surface_id != 0) {
        g_warning("FIXME: only support monitor config with primary surface 0, "
                  "but given config surface %d", c->surface_id);
        goto whole;
    }

If I comment it out I can't reproduce this bug any more.

Marc-Andre, Christophe -- any ideas?

Comment 7 Marc-Andre Lureau 2014-03-11 11:49:05 UTC
(In reply to Søren Sandmann Pedersen from comment #6)
> It *appears* this bug is connected with the following code in spice-gtk3:
> 
>     if (c->surface_id != 0) {
>         g_warning("FIXME: only support monitor config with primary surface
> 0, "
>                   "but given config surface %d", c->surface_id);
>         goto whole;
>     }
> 
> If I comment it out I can't reproduce this bug any more.
> 

When we get a monitor config with a surface != 0, we don't have any support for that. There is no code to handle such case, and in general I expect this to be a bit tricky to get right (changing surface etc). 

I suppose this is still using the xf86-qxl driver, right? (not the drm) Any idea why we have monitor config with surface_id != 0?

Comment 8 Søren Sandmann Pedersen 2014-03-11 16:13:07 UTC
This is using kernel mode setting, if that's what you mean.

Comment 9 Marc-Andre Lureau 2014-03-11 16:25:51 UTC
(In reply to Søren Sandmann Pedersen from comment #8)
> This is using kernel mode setting, if that's what you mean.

shouldn't this bug be moved to kernel then?

That doesn't answer my question: why we have monitor config with surface_id != 0? Afaik, we shouldn't reach this, but perhaps drm/kms driver is doing something new?

Comment 10 Søren Sandmann Pedersen 2014-03-11 20:15:00 UTC
I thought that the multi-monitor work added the ability to set any surface as scan-out.

Cc'ing Dave and Alon.

Comment 13 Fabiano Fidêncio 2014-08-27 01:02:50 UTC
This problem is in drm/kms driver, as noted by Marc-André. The fix is already pushed upstream (52571ad5f4c57067ac593a6bdb1f7a35ed032d27) and has to be backported to rhel-7.1.

Shall I just move this bug to kernel?

Comment 14 Rob Clark 2014-08-27 14:02:01 UTC
fyi, this landed upstream in 3.15-rc3, and is part of the rhel71 drm backport

Comment 15 Rob Clark 2014-12-11 20:06:41 UTC

*** This bug has been marked as a duplicate of bug 1101269 ***