]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/i915/gt: Retry RING_HEAD reset until it get sticks
authorNitin Gote <nitin.r.gote@intel.com>
Tue, 15 Oct 2024 14:57:10 +0000 (20:27 +0530)
committerAndi Shyti <andi.shyti@linux.intel.com>
Tue, 22 Oct 2024 09:35:07 +0000 (11:35 +0200)
commit6ef0e3ef2662db71d363af77ce31fa940bb7d525
tree1299f8a8ee504c2212b59a9cec8dd29bf39d2844
parente217f22041fe2478e8ab6e4cfa1774089db9a918
drm/i915/gt: Retry RING_HEAD reset until it get sticks

we see an issue where resets fails because the engine resumes
from an incorrect RING_HEAD. Since the RING_HEAD doesn't point
to the remaining requests to re-run, but may instead point into
the uninitialised portion of the ring, the GPU may be then fed
invalid instructions from a privileged context, oft pushing the
GPU into an unrecoverable hang.

If at first the write doesn't succeed, try, try again.

v2: Avoid unnecessary timeout macro (Andi)

v3: Correct comment format (Andi)

v4: Make it generic for all platform as it won't impact (Chris)

Link: https://gitlab.freedesktop.org/drm/intel/-/issues/5432
Testcase: igt/i915_selftest/hangcheck
Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com>
Signed-off-by: Nitin Gote <nitin.r.gote@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241015145710.2478599-1-nitin.r.gote@intel.com
drivers/gpu/drm/i915/gt/intel_ring_submission.c