OSDN Git Service

drm/i915/ringbuffer: Brute force context restore
authorChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Jun 2018 10:48:08 +0000 (11:48 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 11 Jun 2018 13:01:15 +0000 (14:01 +0100)
commit1fc719d13ac07b082ff9daa8f40254680cade111
treeb467d121a6d4d32405e449fdebe7bee216c22376
parent602a9de513d5a43ecaf7d0443eca41656165d3c4
drm/i915/ringbuffer: Brute force context restore

An issue encountered with switching mm on gen7 is that the GPU likes to
hang (with the VS unit busy) when told to force restore the current
context. We can simply workaround this by substituting the
MI_FORCE_RESTORE flag with a round-trip through the kernel_context,
forcing the context to be saved and restored; thereby reloading the
PP_DIR registers and updating the modified page directory!

v2: Undo attempted optimisation in caller (Tvrtko)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180611104808.24295-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/intel_ringbuffer.c