Summary: | [CI][DRMTIP] igt@gem_exec_await@wide-contexts - dmesg-warn - WARNING: possible circular locking dependency detected | ||
---|---|---|---|
Product: | DRI | Reporter: | Lakshmi <lakshminarayana.vudum> |
Component: | DRM/Intel | Assignee: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Status: | RESOLVED FIXED | QA Contact: | Intel GFX Bugs mailing list <intel-gfx-bugs> |
Severity: | normal | ||
Priority: | medium | CC: | intel-gfx-bugs |
Version: | DRI git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | ICL | i915 features: | GEM/Other |
Description
Lakshmi
2019-09-30 09:47:20 UTC
The CI Bug Log issue associated to this bug has been updated. ### New filters associated * ICL: igt@gem_exec_await@wide-contexts - dmesg-warn - WARNING: possible circular locking dependency detected - https://intel-gfx-ci.01.org/tree/drm-tip/drmtip_379/fi-icl-dsi/igt@gem_exec_await@wide-contexts.html That doesn't make much sense, nothing has changed here for a long time. Recursion onto the same engine from within a submit is not possible -- we use an irq-work to break out of the engine lock to signal any completion events spotted while submitting. The dependency chain looks mighty odd as well. A fluke then? The fact that it happened once would support that. So I think the suspect is: __unwind_incomplete_requests: /* * Decouple the virtual breadcrumb before moving it * back to the virtual engine -- we don't want the * request to complete in the background and try * and cancel the breadcrumb on the virtual engine * (instead of the old engine where it is linked)! */ if (test_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, &rq->fence.flags)) { spin_lock(&rq->lock); i915_request_cancel_breadcrumb(rq); spin_unlock(&rq->lock); } That would be an extremely rare path to hit, so would be rarely seen by lockdep. After a bit of thought, the rule is that such a spin_lock(rq->lock) inside engine->active.lock needs nesting annotation, as on the signaling path it is reversed (but we guarantee that it's a different set of engines). https://patchwork.freedesktop.org/series/67621/ commit 08ad9a3846fc72b047b110b36d162ffbcf298fa2 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Oct 4 20:47:58 2019 +0100 drm/i915/execlists: Fix annotation for decoupling virtual request As we may signal a request and take the engine->active.lock within the signaler, the engine submission paths have to use a nested annotation on their requests -- but we guarantee that we can never submit on the same engine as the signaling fence. |
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.