[Intel-gfx] [PATCH] drm/i915: Sleep after restarting the GPU after reset

Chris Wilson chris at chris-wilson.co.uk
Sun Apr 2 16:06:17 UTC 2017


On Sun, Apr 02, 2017 at 03:36:11PM +0100, Chris Wilson wrote:
> A piece of magic that prevents Baytrail from doing a timewarp. (Perhaps
> executing an incorrect portion of the ring?) If left to itself after a
> few hundred resets, the GPU will write a stale seqno causing all
> requests to be completed early and the GPU then appears idle.

+ stuck in the future

> A msleep(1000) before the intel_gpu_reset, or after it is not
> sufficient, but a short delay of a few hundred microseconds after

(also demonstrating that this is not a stray write left inflight from
before the reset)

> writing the RING_CTL is. Less than a few hundred us, or inserting a few
> more posting reads into the init_ring_common is not enough. To limit the
> impact, it appears we only need one after all RING_CTL writes and also we
> only want to apply it when writing nonzero values into the RING_HEAD/TAIL
> i.e. after reset.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98836
Testcase: igt/gem_exec_whisper/hang-chain
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

Before I forget to add them.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list