drm/i915/gt: Decouple inflight virtual engines
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 24 Dec 2020 13:55:38 +0000 (13:55 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 24 Dec 2020 15:02:37 +0000 (15:02 +0000)
commit2efa2c522ab0df5176b59274d2e7d16608e3c6ca
treeb6979183339516f7495654bae55f414f12faa582
parent64b7a3fa7e3e629bc8cb56cef457c0e374303ed1
drm/i915/gt: Decouple inflight virtual engines

Once a virtual engine has been bound to a sibling, it will remain bound
until we finally schedule out the last active request. We can not rebind
the context to a new sibling while it is inflight as the context save
will conflict, hence we wait. As we cannot then use any other sibliing
while the context is inflight, only kick the bound sibling while it
inflight and upon scheduling out the kick the rest (so that we can swap
engines on timeslicing if the previously bound engine becomes
oversubscribed).

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-3-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_execlists_submission.c