Bug 84162 - [PNV/BDW Bisected]igt/kms_flip/bo-too-big causes "WARNING: CPU: 0 PID: 23592 at drivers/gpu/drm/drm_irq.c:1089 drm_wait_one_vblank+0x140/0x16b [drm]()"
Summary: [PNV/BDW Bisected]igt/kms_flip/bo-too-big causes "WARNING: CPU: 0 PID: 23592 ...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: high critical
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-22 06:12 UTC by Guo Jinxian
Modified: 2017-10-06 14:35 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
full dmesg (121.81 KB, text/plain)
2014-09-24 06:55 UTC, lu hua
no flags Details
dmesg (120.26 KB, text/plain)
2014-10-08 03:44 UTC, Guo Jinxian
no flags Details

Description Guo Jinxian 2014-09-22 06:12:06 UTC
==System Environment==
--------------------------
Regression: Yes.

Non-working platforms: BDW

==kernel==
--------------------------
origin/drm-intel-nightly:c5660b4ad395f1e34eacc22cf81c687edfc9c83c(fails)
    drm-intel-nightly: 2014y-09m-19d-18h-12m-22s UTC integration manifest

==Bug detailed description==
-----------------------------
igt/kms_flip/bo-too-big causes "WARNING: CPU: 0 PID: 23592 at drivers/gpu/drm/drm_irq.c:1089 drm_wait_one_vblank+0x140/0x16b [drm]()"

Dmesg:
[ 800.191509] WARNING: CPU: 0 PID: 23592 at drivers/gpu/drm/drm_irq.c:1089 drm_wait_one_vblank+0x140/0x16b [drm]()
[ 800.331935] vblank wait timed out on crtc 1
[ 800.399579] Modules linked in: ip6table_filter ip6_tables iptable_filter ip_tables ebtable_nat ebtables ipv6 x_tables dm_mod iTCO_wdt iTCO_vendor_support ppdev snd_hda_codec_hdmi snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep pcspkr lpc_ich snd_pcm snd_timer i2c_i801 mfd_core snd soundcore battery parport_pc parport ac acpi_cpufreq i915 button video drm_kms_helper drm
[ 801.215019] CPU: 0 PID: 23592 Comm: kms_flip Not tainted 3.17.0-rc5_prts_ab7f1a_20140917_debug+ #28
[ 801.341792] 0000000000000000 ffff8800a59cba08 ffffffff8181608c ffff8800a59cba50
[ 801.499527] ffff8800a59cba40 ffffffff8103e87f ffffffffa000611a 0000000000000001
[ 801.623572] ffff880149f83000 ffff88014999e500 0000000000000001 ffff8800a59cbaa0
[ 801.798185] Call Trace:
[ 801.844769] [] dump_stack+0x45/0x56
[ 801.924017] [] warn_slowpath_common+0x7f/0x98
[ 802.013826] [] ? drm_wait_one_vblank+0x140/0x16b [drm]
[ 802.113102] [] warn_slowpath_fmt+0x4c/0x4e
[ 802.199736] [] ? finish_wait+0x5c/0x65
[ 802.282182] [] drm_wait_one_vblank+0x140/0x16b [drm]
[ 802.379324] [] ? abort_exclusive_wait+0x89/0x89
[ 802.471260] [] intel_enable_primary_hw_plane+0x7a/0x83 [i915]
[ 802.577936] [] intel_crtc_enable_planes+0x2f/0xd7 [i915]
[ 802.679338] [] haswell_crtc_enable+0x876/0x89d [i915]
[ 802.777576] [] __intel_set_mode+0xc77/0x127f [i915]
[ 802.873708] [] intel_set_mode+0x14/0x2a [i915]
[ 802.964555] [] intel_crtc_set_config+0x9b6/0xa9f [i915]
[ 803.064888] [] drm_mode_set_config_internal+0x55/0xe0 [drm]
[ 803.169474] [] drm_mode_setcrtc+0x39e/0x498 [drm]
[ 803.263508] [] drm_ioctl+0x385/0x404 [drm]
[ 803.350123] [] ? drm_mode_setplane+0x1d8/0x1d8 [drm]
[ 803.447289] [] do_vfs_ioctl+0x3a3/0x46c
[ 803.530752] [] ? current_kernel_time+0x61/0x9a
[ 803.621606] [] ? trace_hardirqs_on_caller+0x16e/0x18a
[ 803.719836] [] SyS_ioctl+0x50/0x7d
[ 803.798028] [] system_call_fastpath+0x16/0x1b
[ 803.887828] ---[ end trace cf73ea7c0a54ece6 ]---
[ 805.364639] ------------[ cut here ]------------
[ 805.436565] WARNING: CPU: 0 PID: 23592 at drivers/gpu/drm/drm_irq.c:1089 drm_wait_one_vblank+0x140/0x16b [drm]()
[ 805.576987] vblank wait timed out on crtc 2
[ 805.644631] Modules linked in: ip6table_filter ip6_tables iptable_filter ip_tables ebtable_nat ebtables ipv6 x_tables dm_mod iTCO_wdt iTCO_vendor_support ppdev snd_hda_codec_hdmi snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep pcspkr lpc_ich snd_pcm snd_timer i2c_i801 mfd_core snd soundcore battery parport_pc parport ac acpi_cpufreq i915 button video drm_kms_helper drm
[ 806.493896] CPU: 0 PID: 23592 Comm: kms_flip Tainted: G W 3.17.0-rc5_prts_ab7f1a_20140917_debug+ #28
[ 806.634340] 0000000000000000 ffff8800a59cba08 ffffffff8181608c ffff8800a59cba50
[ 806.808959] ffff8800a59cba40 ffffffff8103e87f ffffffffa000611a 0000000000000002
[ 806.949849] ffff880149f83000 ffff88014999e600 0000000000000001 ffff8800a59cbaa0
[ 807.107663] Call Trace:
[ 807.154207] [] dump_stack+0x45/0x56
[ 807.233458] [] warn_slowpath_common+0x7f/0x98
[ 807.323266] [] ? drm_wait_one_vblank+0x140/0x16b [drm]
[ 807.422548] [] warn_slowpath_fmt+0x4c/0x4e
[ 807.509181] [] ? finish_wait+0x5c/0x65
[ 807.591603] [] drm_wait_one_vblank+0x140/0x16b [drm]
[ 807.688778] [] ? abort_exclusive_wait+0x89/0x89
[ 807.780717] [] intel_enable_primary_hw_plane+0x7a/0x83 [i915]
[ 807.887390] [] intel_crtc_enable_planes+0x2f/0xd7 [i915]
[ 807.988791] [] haswell_crtc_enable+0x876/0x89d [i915]
[ 808.087031] [] __intel_set_mode+0xc77/0x127f [i915]
[ 808.183163] [] intel_set_mode+0x14/0x2a [i915]
[ 808.274004] [] intel_crtc_set_config+0x9b6/0xa9f [i915]
[ 808.374348] [] drm_mode_set_config_internal+0x55/0xe0 [drm]
[ 808.478914] [] drm_mode_setcrtc+0x39e/0x498 [drm]
[ 808.572927] [] drm_ioctl+0x385/0x404 [drm]
[ 808.659562] [] ? drm_mode_setplane+0x1d8/0x1d8 [drm]
[ 808.756735] [] do_vfs_ioctl+0x3a3/0x46c
[ 808.840202] [] ? current_kernel_time+0x61/0x9a
[ 808.931053] [] ? trace_hardirqs_on_caller+0x16e/0x18a
[ 809.029291] [] SyS_ioctl+0x50/0x7d
[ 809.107613] [] system_call_fastpath+0x16/0x1b
[ 809.197281] ---[ end trace cf73ea7c0a54ece7 ]---", 

==Reproduce steps==
---------------------------- 
1. ./kms_flip --run-subtest bo-too-big

==Bisect results form [PRTS][auto-bisect]==
----------------------------
commit 7682654dacbf60887b6d090f1228a80e14caddbc
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Sep 15 12:36:02 2014 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Tue Sep 16 10:22:08 2014 +0200

    drm/i915: Use generic vblank wait
    
    This has the upside that it will no longer steal interrupts from the
    interrupt handler on pre-g4x. Furthermore this will now scream properly
    on all platforms if we don't have hw counters enabled.
    
    v2: Adjust to the new names.
    
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Comment 1 Guo Jinxian 2014-09-22 06:16:28 UTC
Cases below have the same failure:
On BDW
igt/kms_flip/bo-too-big-interruptible
igt/kms_flip/flip-vs-dpms-off-vs-modeset
igt/kms_flip/single-buffer-flip-vs-dpms-off-vs-modeset-interruptible
igt/kms_flip/modeset-vs-vblank-race
igt/kms_flip/dpms-vs-vblank-race
igt/kms_pipe_crc_basic/hang-read-crc-pipe-B
igt/kms_pipe_crc_basic/hang-read-crc-pipe-C
igt/kms_flip/flip-vs-dpms-off-vs-modeset-interruptible
igt/kms_flip/single-buffer-flip-vs-dpms-off-vs-modeset
igt/kms_cursor_crc/cursor-size-change

On PNV
igt/kms_cursor_crc/cursor-128-onscreen
Comment 2 Guo Jinxian 2014-09-22 06:19:04 UTC
Cases below have the same failure on BDW:
igt/kms_mmio_vs_cs_flip/setplane_vs_cs_flip
Comment 3 lu hua 2014-09-24 06:55:35 UTC
Test on BDW with latest -nightly kernel, It impacts 50+ subcases.
Include: kms_cursor_crc, kms_plane, kms_flip, kms_pipe_crc_basic and kms_mmio_vs_cs_flip.
Comment 4 lu hua 2014-09-24 06:55:53 UTC
Created attachment 106764 [details]
full dmesg
Comment 5 Jani Nikula 2014-09-24 08:59:09 UTC
(In reply to comment #3)
> Test on BDW with latest -nightly kernel, It impacts 50+ subcases.

Daniel?
Comment 6 Daniel Vetter 2014-10-01 16:40:39 UTC
I have a hard time reproducing this, and from code inspection it should work. So there seems to be a bug still in drm_crtc_vblank_on. Please test with this debug patch an attach drm.debug=0xe dmesg with a backtrace:

http://patchwork.freedesktop.org/patch/34421/
Comment 7 Guo Jinxian 2014-10-08 03:44:22 UTC
Created attachment 107531 [details]
dmesg

(In reply to Daniel Vetter from comment #6)
> I have a hard time reproducing this, and from code inspection it should
> work. So there seems to be a bug still in drm_crtc_vblank_on. Please test
> with this debug patch an attach drm.debug=0xe dmesg with a backtrace:
> 
> http://patchwork.freedesktop.org/patch/34421/

The failure still able to reproduce with this patch.

root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# ./kms_flip --run-subtest bo-too-big
IGT-Version: 1.8-g6a8d33c (x86_64) (Linux: 3.17.0_kcloud_dda93f_20141008+ x86_64)
Using monotonic timestamps
Beginning bo-too-big on crtc 8, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Beginning bo-too-big on crtc 12, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Beginning bo-too-big on crtc 16, connector 19
  1920x1080 60 1920 1966 1996 2080 1080 1082 1086 1112 0xa 0x48 138780
Subtest bo-too-big: SUCCESS (2.629s)
root@x-bdw05:/GFX/Test/Intel_gpu_tools/intel-gpu-tools/tests# dmesg -r|egrep "<[1-4]>"|grep drm
<4>[  306.181902] WARNING: CPU: 0 PID: 4614 at drivers/gpu/drm/drm_irq.c:1092 drm_wait_one_vblank+0x148/0x173 [drm]()
<4>[  306.181904] Modules linked in: iTCO_wdt iTCO_vendor_support ppdev dm_mod pcspkr i2c_i801 snd_hda_codec_hdmi snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm lpc_ich mfd_core snd_timer snd soundcore battery parport_pc parport ac acpi_cpufreq i915 button video drm_kms_helper drm
<4>[  306.181946]  [<ffffffffa0005e5c>] ? drm_wait_one_vblank+0x148/0x173 [drm]
<4>[  306.181956]  [<ffffffffa0005e5c>] ? drm_wait_one_vblank+0x148/0x173 [drm]
<4>[  306.182021]  [<ffffffffa000bd78>] ? drm_mode_set_config_internal+0x48/0xbd [drm]
<4>[  306.182029]  [<ffffffffa000f498>] ? drm_mode_setcrtc+0x388/0x47e [drm]
<4>[  306.182036]  [<ffffffffa0004741>] ? drm_ioctl+0x344/0x3b3 [drm]
<4>[  306.182042]  [<ffffffffa000f110>] ? drm_mode_setplane+0x1cd/0x1cd [drm]
<4>[  307.312482] WARNING: CPU: 0 PID: 4614 at drivers/gpu/drm/drm_irq.c:1092 drm_wait_one_vblank+0x148/0x173 [drm]()
<4>[  307.312485] Modules linked in: iTCO_wdt iTCO_vendor_support ppdev dm_mod pcspkr i2c_i801 snd_hda_codec_hdmi snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm lpc_ich mfd_core snd_timer snd soundcore battery parport_pc parport ac acpi_cpufreq i915 button video drm_kms_helper drm
<4>[  307.312528]  [<ffffffffa0005e5c>] ? drm_wait_one_vblank+0x148/0x173 [drm]
<4>[  307.312537]  [<ffffffffa0005e5c>] ? drm_wait_one_vblank+0x148/0x173 [drm]
<4>[  307.312604]  [<ffffffffa000bd78>] ? drm_mode_set_config_internal+0x48/0xbd [drm]
<4>[  307.312612]  [<ffffffffa000f498>] ? drm_mode_setcrtc+0x388/0x47e [drm]
<4>[  307.312619]  [<ffffffffa0004741>] ? drm_ioctl+0x344/0x3b3 [drm]
<4>[  307.312626]  [<ffffffffa000f110>] ? drm_mode_setplane+0x1cd/0x1cd [drm]
Comment 8 Paulo Zanoni 2014-10-08 17:48:03 UTC
According to my tests, patch "drm/i915: properly reenable gen8 pipe IRQs" fixes the bug on BDW. Can you please confirm this?

I really believe we should consider the PNV bug as a separate bug, and with its own bug report.
Comment 9 Rodrigo Vivi 2014-10-09 00:05:48 UTC
Patch that paulo mentioned is already on -nightly. Please verify.

I also agree if it still hapens on PNV it should be a different bug.
Comment 10 Guo Jinxian 2014-10-11 02:20:15 UTC
The failure unable to reproduce on both PNV and BDW.

The test result on PNV is skipped.

Verified.
Comment 11 Elizabeth 2017-10-06 14:35:27 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.