Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1510380

Summary: [virtual desktop] Guest's graphical desktop can not display when using '-device VGA' on Power8
Product: Red Hat Enterprise Linux 7 Reporter: yilzhang
Component: qemu-kvm-rhevAssignee: David Gibson <dgibson>
Status: CLOSED NOTABUG QA Contact: yilzhang
Severity: medium Docs Contact:
Priority: medium    
Version: 7.5CC: knoel, lvivier, michen, qzhang, virt-maint, yilzhang
Target Milestone: rc   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-11-08 09:52:07 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:

Description yilzhang 2017-11-07 09:52:46 UTC
Description of problem:
Guest's graphical desktop can not display when using '-device VGA'

Version-Release number of selected component (if applicable):
Host kernel:   3.10.0-771.el7.ppc64le
Guest kernel:  3.10.0-771.el7.ppc64le
qemu-kvm-rhev: qemu-kvm-rhev-2.10.0-4.el7
SLOF:          SLOF-20170724-2.git89f519f.el7.noarch

How reproducible: 100%


Steps to Reproduce:
1. Boot up a KVM guest with standard VGA:
/usr/libexec/qemu-kvm \
 -name yilzhang_vm \
 -smp 8,sockets=2,cores=2,threads=2 \
 -m 8192 \
 -nodefaults \
 -serial unix:/tmp/vga-path,server,nowait \
 -rtc base=localtime,clock=host \
 -boot menu=on \
 -monitor stdio \
 -device VGA \
 -vnc :10 \
 -qmp tcp:0:999,server,nowait \
 -device nec-usb-xhci,id=xhci0 \
 -device usb-kbd,id=usb-kbd0 \
 -device usb-mouse,id=usb-mouse0 \
 -device usb-tablet,id=usb-table0 \
\
 -netdev tap,id=net0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown,vhost=on \
 -device virtio-net-pci,netdev=net0,id=nic0,mac=52:54:00:c3:e7:84 \
\
 -device virtio-scsi-pci,id=scsi0 \
 -drive file=rhel75.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop \
 -device scsi-hd,drive=drive_sysdisk,bus=scsi0.0,id=sysdisk,bootindex=0
2. Connect to the guest using VNC


Actual results:
Guest's graphical desktop can not display

Expected results:
Guest's graphical desktop should display correctly

Additional info:
1. Guest's graphical desktop works well if using virtio-vga
2. x86 doesn't have this issue

Comment 2 Laurent Vivier 2017-11-07 16:41:03 UTC
I'm not able to reproduce. Is it possible to have more details?

for instance "info qtree" from QEMU monitor, and "dmesg" from linux.

Comment 3 Laurent Vivier 2017-11-07 17:15:10 UTC
What is the result of "systemctl status gdm"?
Could you try to start manually the desktop with "systemctl start gdm"?

Comment 4 David Gibson 2017-11-08 02:37:57 UTC
The output from lspci in the guest would also be helpful.  I'm not sure what variety of vga card -device VGA will create by default - not all the variants are supported on Power.

Comment 5 yilzhang 2017-11-08 06:13:42 UTC
Hi Laurent and David,

I'm not sure what was wrong with my guest image, only my image has this bug.
I borrowed one image and guest's desktop displays well using the same qemu cli.
We may close this bug as NOTABUG.


While, another issue:
Does PPC support two VGAs? In my testing, guest's desktop cannot display if using two VGAs

Qemu cli:
-device virtio-vga,id=vga1 \
-device VGA,id=vga2 \

Comment 6 Laurent Vivier 2017-11-08 07:53:43 UTC
(In reply to yilzhang from comment #5)
> Hi Laurent and David,
> 
> I'm not sure what was wrong with my guest image, only my image has this bug.
> I borrowed one image and guest's desktop displays well using the same qemu
> cli.
> We may close this bug as NOTABUG.
> 
> 
> While, another issue:
> Does PPC support two VGAs? In my testing, guest's desktop cannot display if
> using two VGAs
> 
> Qemu cli:
> -device virtio-vga,id=vga1 \
> -device VGA,id=vga2 \

You need something like described in BZ1375166 comment 20

    -device virtio-vga,id=vga1 -vnc :10,display=vga1 \
    -device VGA,id=vga2 -vnc :11,display=vga2

Comment 7 yilzhang 2017-11-08 08:52:19 UTC
Hi Laurent,

Seems there is some problem when using two vga cards, qemu-kvm will abort using the cli in Comment 6:

 -device virtio-vga,id=vga1 -vnc :10,display=vga1 \
 -device VGA,id=vga2 \
or:
 -device virtio-vga,id=vga1 -vnc :10,display=vga1 \
 -device VGA,id=vga2 -vnc :11,display=vga2


QEMU 2.10.0 monitor - type 'help' for more information
(qemu) qemu-kvm: ui/console.c:1437: register_displaychangelistener: Assertion `!dcl->ds' failed.
two-vga-laurent.sh: line 24: 58560 Aborted                 (core dumped) /usr/libexec/qemu-kvm -name yilzhang_vm -smp 8,sockets=2,cores=2,threads=2 -m 8192 -nodefaults -serial unix:/tmp/vga-path,server,nowait -rtc base=localtime,clock=host -boot menu=on -monitor stdio -vnc :10 -qmp tcp:0:999,server,nowait -device nec-usb-xhci,id=xhci0 -device usb-kbd,id=usb-kbd0 -device usb-mouse,id=usb-mouse0 -device usb-tablet,id=usb-table0 -netdev tap,id=net0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown,vhost=on -device virtio-net-pci,netdev=net0,id=nic0,mac=52:54:00:c3:e7:84 -device virtio-scsi-pci,id=scsi0 -drive file=/home/rhel75-kernel-3.10.0-771.qcow2,format=qcow2,id=drive_sysdisk,if=none,cache=none,aio=native,werror=stop,rerror=stop -device scsi-hd,drive=drive_sysdisk,bus=scsi0.0,id=sysdisk,bootindex=0 -device virtio-vga,id=vga1 -vnc :10,display=vga1 -device VGA,id=vga2 -vnc :11,display=vga2

Comment 8 Laurent Vivier 2017-11-08 09:24:31 UTC
(In reply to yilzhang from comment #7)
> Hi Laurent,
> 
> Seems there is some problem when using two vga cards, qemu-kvm will abort
> using the cli in Comment 6:
> 
>  -device virtio-vga,id=vga1 -vnc :10,display=vga1 \
>  -device VGA,id=vga2 \
> or:
>  -device virtio-vga,id=vga1 -vnc :10,display=vga1 \
>  -device VGA,id=vga2 -vnc :11,display=vga2
> 
> 
> QEMU 2.10.0 monitor - type 'help' for more information
> (qemu) qemu-kvm: ui/console.c:1437: register_displaychangelistener:
> Assertion `!dcl->ds' failed.
> two-vga-laurent.sh: line 24: 58560 Aborted                 (core dumped)
> /usr/libexec/qemu-kvm -name yilzhang_vm -smp 8,sockets=2,cores=2,threads=2
> -m 8192 -nodefaults -serial unix:/tmp/vga-path,server,nowait -rtc
> base=localtime,clock=host -boot menu=on -monitor stdio -vnc :10 -qmp
> tcp:0:999,server,nowait -device nec-usb-xhci,id=xhci0 -device
> usb-kbd,id=usb-kbd0 -device usb-mouse,id=usb-mouse0 -device
> usb-tablet,id=usb-table0 -netdev
> tap,id=net0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown,vhost=on
> -device virtio-net-pci,netdev=net0,id=nic0,mac=52:54:00:c3:e7:84 -device
> virtio-scsi-pci,id=scsi0 -drive
> file=/home/rhel75-kernel-3.10.0-771.qcow2,format=qcow2,id=drive_sysdisk,
> if=none,cache=none,aio=native,werror=stop,rerror=stop -device
> scsi-hd,drive=drive_sysdisk,bus=scsi0.0,id=sysdisk,bootindex=0 -device
> virtio-vga,id=vga1 -vnc :10,display=vga1 -device VGA,id=vga2 -vnc
> :11,display=vga2

Could you try removing the first "-vnc :10" (the one after "-monitor stdio").

I think it's a new bug: could you open another BZ (and close this one)?
You should also check with x86_64 as there is no reason this happens only with ppc64le.

Comment 9 yilzhang 2017-11-08 09:52:07 UTC
Hi Laurent,

1. Removing the first "-vnc :10" cannot prevent qemu-kvm process aborting.
2. And this is not ppc64le specific, x86 also has this crash.
   
I've opened Bug 1510809 to track this crash, and will close this bug (Comment 5).