Bug 93439 - [SNB,IVB,HSW,BDW] RPM wakelock ref not held during HW access (intel_connector_get_hw_state)
Summary: [SNB,IVB,HSW,BDW] RPM wakelock ref not held during HW access (intel_connector...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: XOrg git
Hardware: Other All
: medium critical
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-18 14:54 UTC by Imre Deak
Modified: 2017-07-24 22:43 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Imre Deak 2015-12-18 14:54:04 UTC
The WARN below started to appeared after we added stricter RPM reference checking asserts. It happens with CRT, LVDS, HDMI, DDI output types. There may be additional platforms/testcases affected than the ones listed, since a preceeding unrelated error message may suppress any further errors (we use WARN_ONCE). Testcases which triggered this WARN or similar one with intel_connector_get_hw_state/intel_ddi_connector_get_hw_state during CI runs:

SNB:
  igt@kms_flip@basic-flip-vs-wf_vblank
  igt@kms_pipe_crc_basic@read-crc-pipe-a
  igt@kms_pipe_crc_basic@read-crc-pipe-b
  igt@kms_setmode@basic-clone-single-crtc
  igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b
IVB:
  igt@kms_flip@basic-flip-vs-wf_vblank
  igt@kms_pipe_crc_basic@read-crc-pipe-a
  igt@pm_rpm@basic-pci-d3-state
  igt@pm_rpm@basic-rte
HSW:
  igt@kms_flip@basic-flip-vs-modeset
  igt@kms_flip@basic-flip-vs-wf_vblank
BDW:
  igt@kms_flip@basic-flip-vs-wf_vblank
  igt@kms_flip@basic-plain-flip
  igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence
  igt@pm_rpm@basic-pci-d3-state

[   66.151038] ------------[ cut here ]------------
[   66.151071] WARNING: CPU: 0 PID: 5743 at drivers/gpu/drm/i915/intel_drv.h:1446 gen6_read32+0x238/0x2b0 [i915]()
[   66.151073] RPM wakelock ref not held during HW access
[   66.151075] Modules linked in:
[   66.151077]  x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul i915 crc32_pclmul mei_me mei lpc_ich broadcom bcm_phy_lib tg3 ptp pps_core
[   66.151093] CPU: 0 PID: 5743 Comm: kms_flip Tainted: G     U          4.4.0-rc5-gfxbench+ #1
[   66.151095] Hardware name: Dell Inc. XPS 8300  /0Y2MRG, BIOS A06 10/17/2011
[   66.151097]  ffffffffa0186860 ffff8800c06e3aa0 ffffffff813e000c ffff8800c06e3ae8
[   66.151102]  ffff8800c06e3ad8 ffffffff810746a1 00000000000e1100 ffff88012966f478
[   66.151106]  ffff8800bf2a0000 0000000000000001 ffff8800bf2a0000 ffff8800c06e3b38
[   66.151111] Call Trace:
[   66.151117]  [<ffffffff813e000c>] dump_stack+0x4e/0x82
[   66.151121]  [<ffffffff810746a1>] warn_slowpath_common+0x81/0xc0
[   66.151124]  [<ffffffff81074727>] warn_slowpath_fmt+0x47/0x50
[   66.151129]  [<ffffffff810c5a3d>] ? trace_hardirqs_on+0xd/0x10
[   66.151148]  [<ffffffffa00f6b28>] gen6_read32+0x238/0x2b0 [i915]
[   66.151154]  [<ffffffff81796919>] ? mutex_unlock+0x9/0x10
[   66.151177]  [<ffffffffa0134ee5>] intel_crt_get_hw_state+0x55/0x90 [i915]
[   66.151252]  [<ffffffffa011bf33>] intel_connector_get_hw_state+0x23/0x30 [i915]
[   66.151273]  [<ffffffffa011a63e>] intel_atomic_commit+0xa3e/0x17f0 [i915]
[   66.151280]  [<ffffffff8150e142>] ? drm_atomic_check_only+0x142/0x600
[   66.151287]  [<ffffffff8150ed17>] ? drm_atomic_add_affected_connectors+0x87/0xf0
[   66.151292]  [<ffffffff8150e632>] drm_atomic_commit+0x32/0x50
[   66.151298]  [<ffffffff814eb705>] drm_atomic_helper_set_config+0x75/0xb0
[   66.151303]  [<ffffffff814fd640>] drm_mode_set_config_internal+0x60/0x110
[   66.151308]  [<ffffffff815023d6>] drm_mode_setcrtc+0x186/0x4f0
[   66.151314]  [<ffffffff811844f8>] ? __might_fault+0x48/0xa0
[   66.151320]  [<ffffffff814f450d>] drm_ioctl+0x13d/0x590
[   66.151325]  [<ffffffff81502250>] ? drm_mode_setplane+0x1b0/0x1b0
[   66.151330]  [<ffffffff811d53ec>] do_vfs_ioctl+0x2fc/0x550
[   66.151335]  [<ffffffff8118dbca>] ? vm_munmap+0x4a/0x60
[   66.151340]  [<ffffffff811e0e5a>] ? __fget_light+0x6a/0x90
[   66.151344]  [<ffffffff811d567c>] SyS_ioctl+0x3c/0x70
[   66.151349]  [<ffffffff8179a45b>] entry_SYSCALL_64_fastpath+0x16/0x73
[   66.151354] ---[ end trace e8574724e8332771 ]---
Comment 1 Chris Wilson 2015-12-19 09:48:09 UTC
We should just take a reference for intel_atomic_commit() since we know at that point we are committing the changes to hardware.
Comment 2 Chris Wilson 2015-12-19 09:59:23 UTC
Though I think it also means we need better annotations at the lower levels that assert that they hold the display power well.
Comment 3 Ander Conselvan de Oliveira 2016-01-15 12:46:39 UTC
Increasing priority as this cause noise in CI results.
Comment 4 Ander Conselvan de Oliveira 2016-01-15 13:01:56 UTC
(In reply to Ander Conselvan de Oliveira from comment #3)
> Increasing priority as this cause noise in CI results.

I missed that the warning was tuned down in

commit becd9ca2de656ccd8d02c434742388aead336147
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Jan 5 17:54:07 2016 +0100

    drm/i915: Tune down rpm wakelock debug checks


Decreasing priority.
Comment 5 Imre Deak 2016-02-17 14:46:10 UTC
The fix for the root cause is now merged, so closing this ticket.

commit 1c8fdda1ea947ae8cf994969a1c285acc7089cb9
Author: Imre Deak <imre.deak@intel.com>
Date:   Fri Feb 12 18:55:15 2016 +0200

    drm/i915/crt: Ensure the HW is powered during HW state readout


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.