drm/i915: Reduce GPU error capture mutex hold time
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 16 Sep 2020 09:00:59 +0000 (10:00 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 18 Sep 2020 10:53:04 +0000 (11:53 +0100)
commitf2acf74068b0ac56289ecdd9739e9aaee1a46d21
treefe309d29cacb7e3896ddc49cacc1246ddc6fe363
parent293f43c80c0027ff9299036c24218ac705ce584e
drm/i915: Reduce GPU error capture mutex hold time

Shrink the hold time for the error capture mutex to just around the
acquire/release of the PTE used for reading back the object via the
Global GTT. For platforms that do not need the GGTT read back, we can
skip the mutex entirely and allow concurrent error capture. Where we do
use the GGTT, by restricting the hold time around the slow readback and
compression, we are more resilient against softlockups (khungtaskd) as
the heartbeat may well also trigger an error while the first is on
going, and this allows the heartbeat reset to skip past the capture and
not be stalled.

Testcase: igt/gem_exec_capture/many-*
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200916090059.3189-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gpu_error.c