linux/drivers/gpu
Chris Wilson 49b20dbf74 drm/i915/gt: Perform an arbitration check before busywaiting
During igt_reset_nop_engine, it was observed that an unexpected failed
engine reset lead to us busywaiting on the stop-ring semaphore (set
during the reset preparations) on the first request afterwards. There was
no explicit MI_ARB_CHECK in this sequence as the presumption was that
the failed MI_SEMAPHORE_WAIT would itself act as an arbitration point.
It did not in this circumstance, so force it.

This patch is based on the assumption that the MI_SEMAPHORE_WAIT failure
to arbitrate is a rare Tigerlake bug, similar to the lite-restore vs
semaphore issues previously seen in the CS. The explicit MI_ARB_CHECK
should always ensure that there is at least one arbitration point in the
request before the MI_SEMAPHORE_WAIT to trigger the IDLE->ACTIVE event.
Upon processing that event, we will clear the stop-ring flag and release
the semaphore from its busywait.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210112100759.32698-2-chris@chris-wilson.co.uk
2021-01-12 11:44:55 +00:00
..
drm drm/i915/gt: Perform an arbitration check before busywaiting 2021-01-12 11:44:55 +00:00
host1x gpu/host1x: bus: Add missing description for 'driver' 2020-11-05 22:12:55 +01:00
ipu-v3 gpu: ipu-v3: remove unused functions 2020-10-26 10:42:38 +01:00
trace
vga vga_switcheroo: simplify the return expression of vga_switcheroo_runtime_resume 2020-09-22 15:20:29 +02:00
Makefile