drm/i915/gt: Defer schedule_out until after the next dequeue
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 24 Dec 2020 13:55:39 +0000 (13:55 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 24 Dec 2020 15:02:38 +0000 (15:02 +0000)
commit6f0726b4807c1e16a88c4cfd2577c9bff265d35a
treefc1fa701cd163086aa70e155d5dab5f21292f8d5
parent2efa2c522ab0df5176b59274d2e7d16608e3c6ca
drm/i915/gt: Defer schedule_out until after the next dequeue

Inside schedule_out, we do extra work upon idling the context, such as
updating the runtime, kicking off retires, kicking virtual engines.
However, if we are in a series of processing single requests per
contexts, we may find ourselves scheduling out the context, only to
immediately schedule it back in during dequeue. This is just extra work
that we can avoid if we keep the context marked as inflight across the
dequeue. This becomes more significant later on for minimising virtual
engine misses.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201224135544.1713-4-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_context_types.h
drivers/gpu/drm/i915/gt/intel_execlists_submission.c