Bug 82751

Summary: [PNV/IVB/HSW Regression]igt/kms_flip some subcases cause "WARNING: CPU: 1 PID: 5455 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x54a/0x58d [i915]()"
Product: DRI Reporter: Guo Jinxian <jinxianx.guo>
Component: DRM/IntelAssignee: Todd Previte <tprevite>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: high CC: intel-gfx-bugs
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg
none
dmesg none

Description Guo Jinxian 2014-08-18 07:58:37 UTC
Created attachment 104801 [details]
dmesg

==System Environment==
--------------------------
Regression: Yes.
Good commit on -next-queued: c0ee2e894256703265604a7455d614409c010ce8

Non-working platforms: PNV

==kernel==
--------------------------
origin/drm-intel-nightly: 186631131a9289dad22f51315d78b9b6ac5b425f(fails)
    drm-intel-nightly: 2014y-08m-15d-14h-55m-27s integration manifest
origin/drm-intel-next-queued: ecca3fd0ea82c45b558f68b1ff3bf6685b443ab1(fails)
    drm/i915/bdw: Enable Logical Ring Contexts (hence, Execlists)
origin/drm-intel-fixes: 103ae732ad26141515f109c80b5c1ced16e457c3(works)
    drm/i915: Don't try to enable cursor from setplane when crtc is disabled

==Bug detailed description==
-----------------------------
igt/kms_flip some subcases cause "WARNING: CPU: 1 PID: 5455 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x54a/0x58d [i915]()"

Case list:
igt/kms_flip/vblank-vs-dpms-suspend
igt/kms_flip/vblank-vs-dpms-suspend-interruptible
igt/kms_flip/vblank-vs-modeset-suspend
igt/kms_flip/vblank-vs-modeset-suspend-interruptible
igt/kms_flip/vblank-vs-suspend
igt/kms_flip/vblank-vs-suspend-interruptible

Output:
[root@x-pnv2 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend
IGT-Version: 1.7-g1bec6cb (i686) (Linux: 3.16.0_drm-intel-nightly_186631_20140818+ i686)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend on crtc 10, connector 11
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
.rtcwake: wakeup from ""mem"" using /dev/rtc0 at Mon Aug 18 19:28:27 2014
.rtcwake: wakeup from ""mem"" using /dev/rtc0 at Mon Aug 18 19:29:00 2014
Test assertion failure function check_state, file kms_flip.c:557:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
vblank ts before the vblank was issued!
timerdiff -1s, 990844us
Subtest vblank-vs-dpms-suspend: FAIL
[root@x-pnv2 tests]# dmesg -r|egrep ""<[1-4]>""|grep drm
<4>[  668.924655] WARNING: CPU: 1 PID: 5455 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x54a/0x58d [i915]()
<4>[  668.924712] Modules linked in: ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT iptable_mangle xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc ipv6 dm_mod iTCO_wdt iTCO_vendor_support msi_laptop sparse_keymap rfkill pcspkr i2c_i801 snd_hda_codec_realtek snd_hda_codec_generic lpc_ich mfd_core snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm r8169 snd_timer snd soundcore wmi battery ac acpi_cpufreq joydev i915 button video drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea
<4>[  668.924718] CPU: 1 PID: 5455 Comm: kworker/u4:15 Not tainted 3.16.0_drm-intel-nightly_186631_20140818+ #1538
<3>[  668.924964] [drm:i915_pm_suspend_late] *ERROR* Suspend complete failed: -19
<4>[  672.470656] WARNING: CPU: 1 PID: 5477 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x54a/0x58d [i915]()
<4>[  672.470713] Modules linked in: ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT iptable_mangle xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc ipv6 dm_mod iTCO_wdt iTCO_vendor_support msi_laptop sparse_keymap rfkill pcspkr i2c_i801 snd_hda_codec_realtek snd_hda_codec_generic lpc_ich mfd_core snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm r8169 snd_timer snd soundcore wmi battery ac acpi_cpufreq joydev i915 button video drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea
<4>[  672.470719] CPU: 1 PID: 5477 Comm: kworker/u4:37 Tainted: G        W      3.16.0_drm-intel-nightly_186631_20140818+ #1538
<3>[  672.470974] [drm:i915_pm_suspend_late] *ERROR* Suspend complete failed: -19

Reproduce steps:
-------------------------
1. ./kms_flip --run-subtest vblank-vs-dpms-suspend
Comment 1 Imre Deak 2014-08-18 10:38:16 UTC
Could you try the following fix (the issue slipped through via a patch I reviewed):
http://lists.freedesktop.org/archives/intel-gfx/2014-August/050913.html
Comment 2 Guo Jinxian 2014-08-19 02:54:33 UTC
Test failed on IVB on latest -nightly(186631131a9289dad22f51315d78b9b6ac5b425f) too.
Case list:
igt/kms_flip/vblank-vs-dpms-suspend
igt/kms_flip/vblank-vs-dpms-suspend-interruptible
igt/kms_flip/vblank-vs-modeset-suspend
igt/kms_flip/vblank-vs-modeset-suspend-interruptible
igt/kms_flip/vblank-vs-suspend
igt/kms_flip/vblank-vs-suspend-interruptible

Output:
[root@x-ivb9 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend-interruptible
IGT-Version: 1.7-g1bec6cb (x86_64) (Linux: 3.16.0_drm-intel-nightly_186631_20140818_debug+ x86_64)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend-interruptible on crtc 7, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue Aug 19 15:41:18 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Tue Aug 19 15:41:50 2014
Test assertion failure function check_state, file kms_flip.c:557:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
Last errno: 4, Interrupted system call
vblank ts before the vblank was issued!
timerdiff -1s, 993551us
Subtest vblank-vs-dpms-suspend-interruptible: FAIL
[root@x-ivb9 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
<4>[ 1944.857785] WARNING: CPU: 1 PID: 3945 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x64c/0x696 [i915]()
<4>[ 1944.857797] Modules linked in: ipv6 dm_mod iTCO_wdt iTCO_vendor_support snd_hda_codec_hdmi snd_hda_codec_realtek dcdbas snd_hda_codec_generic serio_raw pcspkr snd_hda_intel i2c_i801 snd_hda_controller snd_hda_codec snd_hwdep snd_pcm snd_timer snd lpc_ich soundcore mfd_core battery tpm_tis tpm acpi_cpufreq i915 button video drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea
<4>[ 1944.857799] CPU: 1 PID: 3945 Comm: kworker/u8:12 Not tainted 3.16.0_drm-intel-nightly_186631_20140818_debug+ #1546
<3>[ 1944.857864] [drm:i915_pm_suspend_late] *ERROR* Suspend complete failed: -19
<4>[ 1945.488872] WARNING: CPU: 1 PID: 3949 at drivers/gpu/drm/i915/i915_drv.c:1487 intel_suspend_complete+0x64c/0x696 [i915]()
<4>[ 1945.488885] Modules linked in: ipv6 dm_mod iTCO_wdt iTCO_vendor_support snd_hda_codec_hdmi snd_hda_codec_realtek dcdbas snd_hda_codec_generic serio_raw pcspkr snd_hda_intel i2c_i801 snd_hda_controller snd_hda_codec snd_hwdep snd_pcm snd_timer snd lpc_ich soundcore mfd_core battery tpm_tis tpm acpi_cpufreq i915 button video drm_kms_helper drm cfbfillrect cfbimgblt cfbcopyarea
<4>[ 1945.488887] CPU: 1 PID: 3949 Comm: kworker/u8:16 Tainted: G        W      3.16.0_drm-intel-nightly_186631_20140818_debug+ #1546
<3>[ 1945.488952] [drm:i915_pm_suspend_late] *ERROR* Suspend complete failed: -19
Comment 3 Guo Jinxian 2014-08-19 05:22:44 UTC
Created attachment 104860 [details]
dmesg

(In reply to comment #1)
> Could you try the following fix (the issue slipped through via a patch I
> reviewed):
> http://lists.freedesktop.org/archives/intel-gfx/2014-August/050913.html

Test passes with this patch.
Comment 4 Guo Jinxian 2014-08-21 03:07:16 UTC
The failure is able reproduce on HSW on latest -nightly(49ceddc7b3b0e3f7eb21b9fb4c9b840cff630047), but the CallTrace unable to reproduce.


[root@x-hsw24 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend-interruptible
IGT-Version: 1.7-g4d2f511 (x86_64) (Linux: 3.17.0-rc1_drm-intel-nightly_49cedd_20140821+ x86_64)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend-interruptible on crtc 7, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Thu Aug 21 02:50:09 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Thu Aug 21 02:50:41 2014
Test assertion failure function check_state, file kms_flip.c:557:
Failed assertion: timercmp(&es->last_received_ts, &es->current_ts, <)
Last errno: 4, Interrupted system call
vblank ts before the vblank was issued!
timerdiff -1s, 993213us
Subtest vblank-vs-dpms-suspend-interruptible: FAIL
[root@x-hsw24 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
[root@x-hsw24 tests]#
Comment 5 Jani Nikula 2014-08-26 11:31:51 UTC
commit d65af1ce275b4f6fcf5d5ae783d6c49609c14d9c
Author: Imre Deak <imre.deak@intel.com>
Date:   Tue Aug 26 13:26:56 2014 +0300

    drm/i915: fix suspend/resume for GENs w/o runtime PM support
Comment 6 Guo Jinxian 2014-08-27 07:06:39 UTC
Verified.

[root@x-hsw24 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend
IGT-Version: 1.7-g50166d2 (x86_64) (Linux: 3.17.0-rc2_drm-intel-nightly_c30b73_20140827+ x86_64)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend on crtc 8, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:49:37 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:50:09 2014

vblank-vs-dpms-suspend on crtc 8, connector 18: PASSED

Beginning vblank-vs-dpms-suspend on crtc 12, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:50:41 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:51:13 2014

vblank-vs-dpms-suspend on crtc 12, connector 18: PASSED

Beginning vblank-vs-dpms-suspend on crtc 16, connector 18
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:51:45 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 06:52:17 2014

vblank-vs-dpms-suspend on crtc 16, connector 18: PASSED

Subtest vblank-vs-dpms-suspend: SUCCESS
[root@x-hsw24 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
[root@x-hsw24 tests]#





[root@x-pnv2 tests]# ./kms_flip --run-subtest vblank-vs-dpms-suspend
IGT-Version: 1.7-g50166d2 (i686) (Linux: 3.17.0-rc2_drm-intel-nightly_c30b73_20140827+ i686)
Using monotonic timestamps
Beginning vblank-vs-dpms-suspend on crtc 10, connector 11
  1024x600 60 1024 1072 1104 1200 600 603 609 625 0xa 0x48 45000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:35:48 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:36:21 2014

vblank-vs-dpms-suspend on crtc 10, connector 11: PASSED

Beginning vblank-vs-dpms-suspend on crtc 7, connector 17
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:36:54 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:37:26 2014

vblank-vs-dpms-suspend on crtc 7, connector 17: PASSED

Beginning vblank-vs-dpms-suspend on crtc 10, connector 17
  1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:37:59 2014
.rtcwake: wakeup from "mem" using /dev/rtc0 at Wed Aug 27 19:38:31 2014

vblank-vs-dpms-suspend on crtc 10, connector 17: PASSED

Subtest vblank-vs-dpms-suspend: SUCCESS
[root@x-pnv2 tests]# dmesg -r|egrep "<[1-4]>"|grep drm
[root@x-pnv2 tests]#
Comment 7 Elizabeth 2017-10-06 14:36:40 UTC
Closing old verified.

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.