Bug 94430 - [HSW+nvidia] regression: display becomes "disconnected" while suspended
Summary: [HSW+nvidia] regression: display becomes "disconnected" while suspended
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: highest critical
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords: regression
Depends on:
Blocks:
 
Reported: 2016-03-07 18:25 UTC by Konstantin Svist
Modified: 2017-07-24 22:42 UTC (History)
2 users (show)

See Also:
i915 platform: HSW
i915 features: power/suspend-resume


Attachments
dmesg (239.50 KB, text/plain)
2016-03-08 20:43 UTC, Konstantin Svist
no flags Details

Description Konstantin Svist 2016-03-07 18:25:21 UTC
Current using kernel 4.4.3-300.fc23.x86_64, git intel driver (commit d1672806a5222f00dcc2eb24ccddd03f727f71bc)

My laptop is connected to 2 external monitors. Soon after screen is locked (xscreensaver), the monitors go into suspend mode.
As of 4.4.x kernel updates, this causes window manager (xfwm4-4.12.3-2.fc23.x86_64) to detect one of the monitors as "disconnected" and all windows are moved to the primary monitor.

When unlocked, both monitors are displaying everything, but windows had been moved already and don't snap back to the 2nd monitor.

Also tried on 4.4.2-301.fc23.x86_64

Issue was not present on 4.3.x and earlier kernels (same setup, booted to 4.3.5-300.fc23.x86_64 does not have the problem)


Note, probably irrelevant, but video hardware is dual:

00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06) (prog-if 00 [VGA controller])
	Subsystem: CLEVO/KAPOK Computer Device [1558:5281]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 35
	Region 0: Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
	Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at f000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee00018  Data: 0000
	Capabilities: [d0] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: i915
	Kernel modules: i915


01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104M [GeForce GTX 870M] [10de:1199] (rev ff) (prog-if ff)
	!!! Unknown header type 7f
	Kernel modules: nouveau, nvidia


Using bumblebee to enable nvidia card when necessary; usually it's left disabled.
Comment 1 Konstantin Svist 2016-03-08 00:04:13 UTC
N.B. to avoid miscommunication, when I mention "suspend" I'm only talking about the monitor. The laptop is on and all programs are running -- but screensaver locks the screen & Display Power Management is set to Standby/Suspend/Off
Comment 2 Paulo Zanoni 2016-03-08 17:47:51 UTC
Are both displays mentioned in the bug connected to the Intel device?

Can you please boot with drm.debug=0xe, reproduce the bug, then attach the dmesg output here?

If this is a regression, is it possible for you to use git bisect in order to discover which one is the bad commit? I know this takes some time, but it's usually a very efficient way of finding the problem.
Comment 3 Konstantin Svist 2016-03-08 20:43:31 UTC
Created attachment 122170 [details]
dmesg

I'm not 100% sure about the topology of the hardware, but I'm quite sure that nvidia driver isn't loaded and the LED indicator (one that lights up while nvidia card is being used) is off.

dmesg is attached
* booted up, logged in
* started up a few apps/windows
* locked the screen
* waited for one monitor's LED to change to powersave/etc. mode
* unlocked, saw XFCE's "configure displays" dialog, windows on the wrong monitor
* dumped dmesg


Bisecting the kernel would be very inconvenient.. I have a plain Fedora install (pre-packaged RPMs) and it's a work laptop.
I'll see what I can do with Koji kernel builds
Comment 4 Chris Wilson 2016-03-08 20:53:14 UTC
[   99.866683] [drm:intel_get_hpd_pins] hotplug event received, stat 0x00400000, dig 0x00101210, pins 0x00000040
[   99.866687] [drm:intel_hpd_irq_storm_detect] Received HPD interrupt on PIN 6 - cnt: 0
[   99.866701] [drm:i915_hotplug_work_func] running encoder hotplug functions
[   99.866704] [drm:i915_hotplug_work_func] Connector HDMI-A-2 (pin 6) received hotplug event.
[   99.866706] [drm:intel_hdmi_detect] [CONNECTOR:50:HDMI-A-2]
[   99.866708] [drm:intel_power_well_enable] enabling always-on
[   99.954412] [drm:intel_hdmi_detect] Live status not up!
[   99.954415] [drm:intel_power_well_disable] disabling always-on
[   99.954419] [drm:intel_hpd_irq_event] [CONNECTOR:50:HDMI-A-2] status updated from connected to disconnected
Comment 5 Konstantin Svist 2016-03-08 22:48:52 UTC
Just found a much easier way to replicate the issue (or maybe it's a closely related issue): just power off the "primary" monitor.

More info:

XFCE's display config lists my displays as:
- 1. AU Optronics 15"
- 2. Viewsonic Corporation 27"
- 3. AOC Intl 23"

This corresponds to xrandr's eDP1, HDMI2, HDMI3:

$ xrandr 
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
eDP1 connected primary (normal left inverted right x axis y axis)
   1920x1080     60.00 +  40.00  
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1280x960      60.00  
   1368x768      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 598mm x 336mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.88  
   1400x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1440x576      50.00  
   1024x768      75.08    70.07    60.00  
   1440x480      60.00    59.94  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x576i      50.00  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
HDMI3 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080     60.00*+
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x720      60.00  
   1024x768      75.08    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   640x480       75.00    72.81    66.67    60.00  
   720x400       70.08  
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)



eDP1 is the laptop display, not used;
HDMI2 uses the actual HDMI port, primary display;
HDMI3 uses the DisplayPort connector, secondary display (uses DP->DVI adapter, so maybe that's why it's detected as "HDMI"?)


When I power off the secondary display, nothing happens to the desktop (as expected)

When I power off the primary display, some windows are switched over to the primary display's region

Apparently, xfce4-terminal and pidgin windows are not affected for some reason; Firefox and Thunderbird definitely are
Comment 6 Konstantin Svist 2016-03-09 21:15:40 UTC
Tested .fc24 build from koji:

kernel-4.4.0-0.rc0.git1.1.fc24 OK
kernel-4.4.0-0.rc0.git5.1.fc24 OK
kernel-4.4.0-0.rc0.git6.1.fc24 OK
kernel-4.4.0-0.rc0.git7.2.fc24 BUG
kernel-4.4.0-0.rc0.git9.1.fc24 BUG

links:
...git6.1.fc24 OK  http://koji.fedoraproject.org/koji/buildinfo?buildID=698087
...git7.2.fc24 BUG http://koji.fedoraproject.org/koji/buildinfo?buildID=698608


Note: another easy-to-test app: Geany (text editor)

Hope this helps!
Comment 7 Konstantin Svist 2016-04-01 20:46:31 UTC
*ping*
anything happening here?
Comment 8 Imre Deak 2016-09-29 10:22:58 UTC
Could you try the drm-intel-nightly branch from
git://anongit.freedesktop.org/drm-intel

It has a fix for the HDMI live status check problem mentioned in comment 4.
Comment 9 Jari Tahvanainen 2017-02-06 13:07:52 UTC
Timeout, assuming that this is fixed by now based on the comment 8. Please retest with the latest drm-tip and reopen if problem still persist in your system.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.