Bug 1277089

Summary: Remote screen display blank after changing to lower resolution in NVIDIA X Server Settings.
Product: Red Hat Enterprise Linux 7 Reporter: Guo, Zhiyi <zhguo>
Component: qemu-kvm-rhevAssignee: Alex Williamson <alex.williamson>
Status: CLOSED CANTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: alex.williamson, chayang, huding, juzhang, knoel, kraxel, michen, qzhang, virt-maint, xfu, zhguo
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-21 14:54:54 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
xorg configure used none

Description Guo, Zhiyi 2015-11-02 10:08:10 UTC
Description of problem:
Remote screen display blank after changing to lower resolution in NVIDIA X Server Settings.

Version-Release number of selected component (if applicable):
kernel version(host&guest):3.10.0-326.el7.x86_64
qemu version: qemu-kvm-rhev-2.3.0-31.el7.x86_64
Nvidia driver: NVIDIA-Linux-x86_64-352.55

How reproducible:
100%

Steps to Reproduce:
1. Boot guest with gpu(what I used is quadro k5000) pass through:
qemu-kvm -name rhel7.2 -m 2048 -machine pc,accel=kvm\
	-smp 2,cores=1,threads=1,sockets=2 \
	-serial unix:/tmp/m,server,nowait \
	-drive file=/root/zhguo/gputest/image/rhev7_2_gpu_test.qcow2,if=none,id=drive-scsi-disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,id=scsi0 -device scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,bootindex=1 \
	-monitor stdio \
        -netdev tap,id=idinWyYp,vhost=on -device virtio-net-pci,mac=42:ce:a9:d2:4d:d7,id=idlbq7eA,netdev=idinWyYp \
	-vnc :1 \
	-device vfio-pci,host=05:00.0,id=K5000,addr=05

2. Install nvidia driver and configure X server, remote access the guest and change resolution to lower from Nvidia X Server Settings(change resolution from 1024x768 to 800x600 eg) and check the result of resolution change. 


Actual results:
Remote screen display blank

Expected results:
Screen resolution change without problem

Additional info:
No such problem happen when changing resolution(from high to low, vise versa) from Displays setting and xrandr in RHEL7.2
Upload xorg.conf I used.

Comment 1 Guo, Zhiyi 2015-11-02 10:08:57 UTC
Created attachment 1088519 [details]
xorg configure used

Comment 3 Alex Williamson 2015-11-02 15:36:09 UTC
(In reply to Guo, Zhiyi from comment #0)
> Description of problem:
> Remote screen display blank after changing to lower resolution in NVIDIA X
> Server Settings.
> 
> Version-Release number of selected component (if applicable):
> kernel version(host&guest):3.10.0-326.el7.x86_64
> qemu version: qemu-kvm-rhev-2.3.0-31.el7.x86_64
> Nvidia driver: NVIDIA-Linux-x86_64-352.55
> 
> How reproducible:
> 100%
> 
> Steps to Reproduce:
> 1. Boot guest with gpu(what I used is quadro k5000) pass through:
> qemu-kvm -name rhel7.2 -m 2048 -machine pc,accel=kvm\
> 	-smp 2,cores=1,threads=1,sockets=2 \
> 	-serial unix:/tmp/m,server,nowait \
> 	-drive
> file=/root/zhguo/gputest/image/rhev7_2_gpu_test.qcow2,if=none,id=drive-scsi-
> disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device
> virtio-scsi-pci,id=scsi0 -device
> scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,
> bootindex=1 \
> 	-monitor stdio \
>         -netdev tap,id=idinWyYp,vhost=on -device
> virtio-net-pci,mac=42:ce:a9:d2:4d:d7,id=idlbq7eA,netdev=idinWyYp \
> 	-vnc :1 \
> 	-device vfio-pci,host=05:00.0,id=K5000,addr=05
> 
> 2. Install nvidia driver and configure X server, remote access the guest and
> change resolution to lower from Nvidia X Server Settings(change resolution
> from 1024x768 to 800x600 eg) and check the result of resolution change. 

How are you remotely accessing the guest?

> Actual results:
> Remote screen display blank

Can you reconnect?  What does the connected monitor show?
 
> Expected results:
> Screen resolution change without problem
> 
> Additional info:
> No such problem happen when changing resolution(from high to low, vise
> versa) from Displays setting and xrandr in RHEL7.2
> Upload xorg.conf I used.

If anything, this sounds like a bug in NVIDIA's X server settings tool, which is NVIDIA code that we have no ability to support ourselves.  Can this be reproduced running the K5000 in the host, connecting remotely, and performing the same procedure?

Comment 4 Guo, Zhiyi 2015-11-03 06:49:34 UTC
(In reply to Alex Williamson from comment #3)
> (In reply to Guo, Zhiyi from comment #0)
> > Description of problem:
> > Remote screen display blank after changing to lower resolution in NVIDIA X
> > Server Settings.
> > 
> > Version-Release number of selected component (if applicable):
> > kernel version(host&guest):3.10.0-326.el7.x86_64
> > qemu version: qemu-kvm-rhev-2.3.0-31.el7.x86_64
> > Nvidia driver: NVIDIA-Linux-x86_64-352.55
> > 
> > How reproducible:
> > 100%
> > 
> > Steps to Reproduce:
> > 1. Boot guest with gpu(what I used is quadro k5000) pass through:
> > qemu-kvm -name rhel7.2 -m 2048 -machine pc,accel=kvm\
> > 	-smp 2,cores=1,threads=1,sockets=2 \
> > 	-serial unix:/tmp/m,server,nowait \
> > 	-drive
> > file=/root/zhguo/gputest/image/rhev7_2_gpu_test.qcow2,if=none,id=drive-scsi-
> > disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device
> > virtio-scsi-pci,id=scsi0 -device
> > scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,
> > bootindex=1 \
> > 	-monitor stdio \
> >         -netdev tap,id=idinWyYp,vhost=on -device
> > virtio-net-pci,mac=42:ce:a9:d2:4d:d7,id=idlbq7eA,netdev=idinWyYp \
> > 	-vnc :1 \
> > 	-device vfio-pci,host=05:00.0,id=K5000,addr=05
> > 
> > 2. Install nvidia driver and configure X server, remote access the guest and
> > change resolution to lower from Nvidia X Server Settings(change resolution
> > from 1024x768 to 800x600 eg) and check the result of resolution change. 
> 
> How are you remotely accessing the guest?
> 
> > Actual results:
> > Remote screen display blank
> 
> Can you reconnect?  What does the connected monitor show?
>  
> > Expected results:
> > Screen resolution change without problem
> > 
> > Additional info:
> > No such problem happen when changing resolution(from high to low, vise
> > versa) from Displays setting and xrandr in RHEL7.2
> > Upload xorg.conf I used.
> 
> If anything, this sounds like a bug in NVIDIA's X server settings tool,
> which is NVIDIA code that we have no ability to support ourselves.  Can this
> be reproduced running the K5000 in the host, connecting remotely, and
> performing the same procedure?

Hi Alex,
Answer your questions:
1:Use remote-viewer with cmd: remote-viewer vnc://10.66.10.61:5900, version:virt-viewer-2.0-6.el7.x86_64
2:After reconnect to guest, connected monitor display normally and resolution change effectively.
3: Yes, same problem happen following same procedure under host with K5000 setup.

Comment 5 Alex Williamson 2015-11-09 21:00:53 UTC
(In reply to Guo, Zhiyi from comment #4)
> 
> Hi Alex,
> Answer your questions:
> 1:Use remote-viewer with cmd: remote-viewer vnc://10.66.10.61:5900,
> version:virt-viewer-2.0-6.el7.x86_64
> 2:After reconnect to guest, connected monitor display normally and
> resolution change effectively.
> 3: Yes, same problem happen following same procedure under host with K5000
> setup.

RHEL guests do not support simultaneous output to both the NVIDIA GPU and the emulated GPU, so it's expected that the emulated console goes blank when GPU graphics are initialized.  Does this explain the behavior that you're seeing?

It's still not clear to me whether you're using remote-viewer to connect directly to a VNC server running in the guest (vino?) or whether that's connecting to the QEMU process on the host, such as might be done with virt-viewer.  Please clarify.

Also, since you say this also occurs on the host, does it only occur with the nvidia driver or does it also happen with nouveau?

Comment 6 Guo, Zhiyi 2015-11-11 10:35:36 UTC
(In reply to Alex Williamson from comment #5)
> (In reply to Guo, Zhiyi from comment #4)
> > 
> > Hi Alex,
> > Answer your questions:
> > 1:Use remote-viewer with cmd: remote-viewer vnc://10.66.10.61:5900,
> > version:virt-viewer-2.0-6.el7.x86_64
> > 2:After reconnect to guest, connected monitor display normally and
> > resolution change effectively.
> > 3: Yes, same problem happen following same procedure under host with K5000
> > setup.
> 
> RHEL guests do not support simultaneous output to both the NVIDIA GPU and
> the emulated GPU, so it's expected that the emulated console goes blank when
> GPU graphics are initialized.  Does this explain the behavior that you're
> seeing?
> 
> It's still not clear to me whether you're using remote-viewer to connect
> directly to a VNC server running in the guest (vino?) or whether that's
> connecting to the QEMU process on the host, such as might be done with
> virt-viewer.  Please clarify.
> 
> Also, since you say this also occurs on the host, does it only occur with
> the nvidia driver or does it also happen with nouveau?

Hi Alex,

For your 1st question, I'm a bit confused about your explain. Do you mean changing resolution through Displays setting and xrandr will not trigger gpu graphics initialize but changing resolution in NVIDIA's X server settings gfx tool will trigger gpu graphics initialize? And I think through xorg.conf I have already disable emulated gpu and only use nvidia gpu to output gfx. 
For 2nd question, I use remote-viewer to connect vino in guest, not qemu process on host.
For 3rd question, rhel guest/host cannot launch graphic with driver set to nouveau, I will try to find work around and if you know the method please kindly suggest me, thanks