]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/execlists: Unwind incomplete requests on resets
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 16 Sep 2017 20:44:14 +0000 (21:44 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 18 Sep 2017 10:00:12 +0000 (11:00 +0100)
commitf0191c3164ea25720231757b6a81c89ad20fb7e1
tree1ade9384dc20abe0d1d4b666d86718777359bcd4
parente0157043bf02fd72895d21df2d0719949f8afa59
drm/i915/execlists: Unwind incomplete requests on resets

Given the mechanism to unwind and replay requests (designed to support
preemption), we have an alternative to the current method of
resubmitting the ELSP upon reset. Resubmitting ELSP turns out to be more
complicated than expected, due to having to handle lost context-switch
interrupts and so guessing what ELSP we need to resubmit later. Instead,
by unwinding the requests and clearing the ELSP tracking entirely, we
can then just dequeue the first pair of ready requests after resetting,
using the normal submission procedure.

Currently, the unwound requests have maximum priority and so are
guaranteed to be resubmitted upon resume. If we are lucky, we may be
able to coalesce a new request on top!

Suggested-by: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170916204414.32762-4-chris@chris-wilson.co.uk
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
drivers/gpu/drm/i915/intel_lrc.c