drm/i915: Detect potential i915_reset_trylock() lockups
diff mbox series

Message ID 20190212114941.26181-1-chris@chris-wilson.co.uk
State New
Headers show
Series
  • drm/i915: Detect potential i915_reset_trylock() lockups
Related show

Commit Message

Chris Wilson Feb. 12, 2019, 11:49 a.m. UTC
Use lockdep to warn before we wait indefinitely in case we may be
waiting indefinitely.

Suggested-by: Mika Kuoppala <mika.kuoppala@intel.com>
References: 2caffbf11762 ("drm/i915: Revoke mmaps and prevent access to fence registers across reset")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/i915_reset.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Chris Wilson Feb. 12, 2019, 12:45 p.m. UTC | #1
Quoting Patchwork (2019-02-12 12:39:58)
> == Series Details ==
> 
> Series: drm/i915: Detect potential i915_reset_trylock() lockups
> URL   : https://patchwork.freedesktop.org/series/56530/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_5591 -> Patchwork_12201
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_12201 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_12201, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/56530/revisions/1/mbox/
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in Patchwork_12201:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@gem_mmap_gtt@basic-small-bo-tiledx:
>     - fi-cfl-8109u:       PASS -> DMESG-WARN
>     - fi-bsw-n3050:       PASS -> DMESG-WARN
>     - fi-bxt-j4205:       PASS -> DMESG-WARN
>     - fi-skl-6700hq:      PASS -> DMESG-WARN
>     - fi-cfl-guc:         PASS -> DMESG-WARN
>     - fi-skl-iommu:       PASS -> DMESG-WARN
>     - fi-skl-6700k2:      PASS -> DMESG-WARN
>     - fi-apl-guc:         PASS -> DMESG-WARN
>     - fi-cfl-8700k:       PASS -> DMESG-WARN
>     - fi-byt-j1900:       PASS -> DMESG-WARN
>     - fi-hsw-4770:        PASS -> DMESG-WARN
>     - fi-skl-6600u:       PASS -> DMESG-WARN
>     - fi-kbl-guc:         PASS -> DMESG-WARN
>     - fi-kbl-8809g:       PASS -> DMESG-WARN
>     - fi-kbl-7567u:       PASS -> DMESG-WARN
>     - fi-skl-guc:         PASS -> DMESG-WARN
>     - fi-glk-j4005:       PASS -> DMESG-WARN
>     - fi-bdw-5557u:       PASS -> DMESG-WARN
>     - fi-bwr-2160:        PASS -> DMESG-WARN
>     - fi-kbl-r:           PASS -> DMESG-WARN
>     - fi-blb-e6850:       NOTRUN -> DMESG-WARN
>     - fi-kbl-x1275:       PASS -> DMESG-WARN
>     - fi-byt-clapper:     PASS -> DMESG-WARN
>     - fi-skl-gvtdvm:      PASS -> DMESG-WARN
>     - fi-hsw-4770r:       PASS -> DMESG-WARN
>     - fi-ilk-650:         PASS -> DMESG-WARN
>     - fi-elk-e7500:       PASS -> DMESG-WARN
>     - fi-skl-6770hq:      PASS -> DMESG-WARN
>     - fi-byt-n2820:       PASS -> DMESG-WARN
>     - fi-snb-2520m:       PASS -> DMESG-WARN
>     - fi-pnv-d510:        PASS -> DMESG-WARN
>     - fi-kbl-7500u:       PASS -> DMESG-WARN
>     - fi-ivb-3520m:       PASS -> DMESG-WARN
>     - fi-bdw-gvtdvm:      PASS -> DMESG-WARN

Yup, that works then.
-Chris

Patch
diff mbox series

diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c
index c1b53533ada6..364c74d1d59b 100644
--- a/drivers/gpu/drm/i915/i915_reset.c
+++ b/drivers/gpu/drm/i915/i915_reset.c
@@ -1305,6 +1305,8 @@  int i915_reset_trylock(struct drm_i915_private *i915)
 	struct i915_gpu_error *error = &i915->gpu_error;
 	int srcu;
 
+	might_lock(&error->reset_backoff_srcu);
+
 	rcu_read_lock();
 	while (test_bit(I915_RESET_BACKOFF, &error->flags)) {
 		rcu_read_unlock();