]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/execlists: Reclaim the hanging virtual request
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 Jan 2020 14:02:42 +0000 (14:02 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 Jan 2020 17:10:15 +0000 (17:10 +0000)
commita40f3377acbe7840834078ea1895ca8247d29506
treeac498fc3872c9d88fa5966d02690fcd008fc2b14
parentadb966d7a825b26146c1ea7fbba82b8de471ddcb
drm/i915/execlists: Reclaim the hanging virtual request

If we encounter a hang on a virtual engine, as we process the hang the
request may already have been moved back to the virtual engine (we are
processing the hang on the physical engine). We need to reclaim the
request from the virtual engine so that the locking is consistent and
local to the real engine on which we will hold the request for error
state capturing.

v2: Pull the reclamation into execlists_hold() and assert that cannot be
called from outside of the reset (i.e. with the tasklet disabled).
v3: Added selftest
v4: Drop the reference owned by the virtual engine

Fixes: 089b7d6a3bcb ("drm/i915/execlists: Offline error capture")
Testcase: igt/gem_exec_balancer/hang
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200122140243.495621-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c
drivers/gpu/drm/i915/gt/selftest_lrc.c