]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/execlists: Reinitialise context image after GPU hang
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 4 Oct 2016 20:11:26 +0000 (21:11 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 5 Oct 2016 07:40:05 +0000 (08:40 +0100)
commit0b346360607bdaafa5fcf506e7d9ed7db0d24c13
treef356e5328d4c61076fca44fb1bae858ce2a4422a
parentb8b34a9a3befe81ade7ef3beb00d5df67dc0fb30
drm/i915/execlists: Reinitialise context image after GPU hang

On Braswell, at least, we observe that the context image is written in
multiple phases. The first phase is to clear the register state, and
subsequently rewrite it. A GPU reset at the right moment can interrupt
the context update leaving it corrupt, and our update of the RING_HEAD
is not sufficient to restart the engine afterwards. To recover, we need
to reset the registers back to their original values. The context state
is lost. What we need is a better mechanism to serialise the reset with
pending flushes from the GPU.

Fixes: de44a5363c60 ("drm/i915: Update reset path to fix incomplete requests")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161004201132.21801-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_lrc.c