Bug 110771 - [CI][DRMTIP] igt@gem_partial_pwrite_pread@reads-snoop - dmesg-warn - RPM wakelock ref not held during HW access
Summary: [CI][DRMTIP] igt@gem_partial_pwrite_pread@reads-snoop - dmesg-warn - RPM wake...
Status: RESOLVED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-27 12:49 UTC by Lakshmi
Modified: 2019-05-29 08:27 UTC (History)
1 user (show)

See Also:
i915 platform: KBL
i915 features: display/Other, power/runtime PM


Attachments

Description Lakshmi 2019-05-27 12:49:12 UTC
https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_292/fi-kbl-7567u/igt@gem_partial_pwrite_pread@reads-snoop.html

------------[ cut here ]------------
RPM wakelock ref not held during HW access
<4> [91.894789] WARNING: CPU: 3 PID: 235 at drivers/gpu/drm/i915/intel_drv.h:1662 fwtable_write32+0x290/0x2f0 [i915]
<4> [91.894791] Modules linked in: vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic mei_hdcp i915 x86_pkg_temp_thermal coretemp crct10dif_pclmul btusb btrtl btbcm btintel crc32_pclmul e1000e ghash_clmulni_intel snd_hda_intel bluetooth snd_hda_codec ptp pps_core snd_hwdep snd_hda_core snd_pcm mei_me ecdh_generic ecc mei prime_numbers
<4> [91.894807] CPU: 3 PID: 235 Comm: kworker/3:2 Tainted: G     U            5.2.0-rc1-g8691fe536e41-drmtip_292+ #1
<4> [91.894808] Hardware name:  /NUC7i7BNB, BIOS BNKBL357.86A.0054.2017.1025.1822 10/25/2017
<4> [91.894840] Workqueue: events i915_hotplug_work_func [i915]
<4> [91.894863] RIP: 0010:fwtable_write32+0x290/0x2f0 [i915]
<4> [91.894866] Code: 69 b4 d4 0f 0b e9 e2 fd ff ff 80 3d c6 95 23 00 00 0f 85 e0 fd ff ff 48 c7 c7 10 eb 6d c0 c6 05 b2 95 23 00 01 e8 f0 68 b4 d4 <0f> 0b e9 c6 fd ff ff b9 01 00 00 00 31 d2 44 89 e6 4c 89 ef e8 57
<4> [91.894868] RSP: 0018:ffffb3b04021fb90 EFLAGS: 00010282
<4> [91.894870] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
<4> [91.894872] RDX: 0000000000000007 RSI: ffffa16072248980 RDI: 00000000ffffffff
<4> [91.894873] RBP: 00000000000018e7 R08: 00000000f5d611cb R09: 0000000000000000
<4> [91.894875] R10: 0000000000002710 R11: 0000000000000000 R12: 000000000000a02c
<4> [91.894876] R13: ffffa1605ac80d30 R14: ffffa1605ac80000 R15: 0000000000000055
<4> [91.894878] FS:  0000000000000000(0000) GS:ffffa16076b80000(0000) knlGS:0000000000000000
<4> [91.894880] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4> [91.894881] CR2: 00007fb4f9069000 CR3: 0000000254876006 CR4: 00000000003606e0
<4> [91.894883] Call Trace:
<4> [91.894910]  rps_set_power+0x117/0x330 [i915]
<4> [91.894941]  intel_rps_mark_interactive+0x6d/0xc0 [i915]
<4> [91.894977]  intel_prepare_plane_fb+0x272/0x5e0 [i915]
<4> [91.894983]  drm_atomic_helper_prepare_planes+0x82/0x100
<4> [91.895011]  intel_atomic_commit+0xad/0x2e0 [i915]
<4> [91.895015]  restore_fbdev_mode_atomic+0x1ed/0x200
<4> [91.895025]  drm_fb_helper_restore_fbdev_mode_unlocked+0x42/0x90
<4> [91.895027]  drm_fb_helper_set_par+0x24/0x50
<4> [91.895029]  drm_fb_helper_hotplug_event.part.24+0xa2/0xb0
<4> [91.895032]  drm_kms_helper_hotplug_event+0x21/0x30
<4> [91.895058]  i915_hotplug_work_func+0x1da/0x240 [i915]
<4> [91.895064]  process_one_work+0x245/0x610
<4> [91.895070]  worker_thread+0x37/0x380
<4> [91.895074]  ? process_one_work+0x610/0x610
<4> [91.895076]  kthread+0x119/0x130
<4> [91.895079]  ? kthread_park+0x80/0x80
<4> [91.895083]  ret_from_fork+0x3a/0x50
<4> [91.895091] irq event stamp: 622232
<4> [91.895094] hardirqs last  enabled at (622231): [<ffffffff9512a7e7>] console_unlock+0x3f7/0x5a0
<4> [91.895096] hardirqs last disabled at (622232): [<ffffffff950019e0>] trace_hardirqs_off_thunk+0x1a/0x1c
<4> [91.895098] softirqs last  enabled at (622222): [<ffffffff95c0033a>] __do_softirq+0x33a/0x4b9
<4> [91.895100] softirqs last disabled at (622211): [<ffffffff950ba1c9>] irq_exit+0xa9/0xc0
<4> [91.895118] WARNING: CPU: 3 PID: 235 at drivers/gpu/drm/i915/intel_drv.h:1662 fwtable_write32+0x290/0x2f0 [i915]
<4> [91.895120] ---[ end trace ce007c0c865e3f59 ]---
Comment 1 CI Bug Log 2019-05-27 12:52:49 UTC
The CI Bug Log issue associated to this bug has been updated.

### New filters associated

* KBL: igt@gem_partial_pwrite_pread@reads-snoop - dmesg-warn - RPM wakelock ref not held during HW access
  - https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_292/fi-kbl-7567u/igt@gem_partial_pwrite_pread@reads-snoop.html

* KBL: igt@runner@aborted - fail - Previous test: gem_partial_pwrite_pread (reads-snoop)
  - https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_292/fi-kbl-7567u/igt@runner@aborted.html
Comment 2 Chris Wilson 2019-05-27 21:32:56 UTC
I would say the onus is on the atomic commit to take a wakeref to keep the device awake for the commit.
Comment 3 Chris Wilson 2019-05-29 08:27:33 UTC
commit 2e2f08d02dd282751e8d329f373dd85d49ae7f90 (HEAD -> drm-intel-next-queued, drm-intel/for-linux-next, drm-intel/drm-intel-next-queued)
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 28 08:53:54 2019 +0100

    drm/i915: Take a runtime pm wakeref for atomic commits
    
    Before we start prepping the system for an atomic modeset, wake the
    device up. We then keep track of this wakeref until we complete the
    atomic commit, so we hold keep the device awake for all potential HW
    access, and do not allow the device to sleep with a pending modeset.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110771
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190528075354.22341-1-chris@chris-wilson.co.uk


Note to self: intel_rps_mark_interactive() is not let off the hook, as it's check to see whether RPS is alive is racy.


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.