]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/gt: Stage the transfer of the virtual breadcrumb
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 25 Mar 2020 13:00:59 +0000 (13:00 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 25 Mar 2020 13:59:41 +0000 (13:59 +0000)
commitb20f0c77105df8b1fe54089e0a0cd77e522f9244
treeff28ba416ef225703277f7b5fe48316f13c7835b
parent043b2372b972cfeb226da26e2a511da7885b9629
drm/i915/gt: Stage the transfer of the virtual breadcrumb

We move the virtual breadcrumb from one physical engine to the next, if
the next virtual request is scheduled on a new physical engine. Since
the virtual context can only be in one signal queue, we need it to track
the current physical engine for the new breadcrumbs. However, to move
the list we need both breadcrumb locks -- and since we cannot take both
at the same time (unless we are careful and always ensure consistent
ordering) stage the movement of the signaler via the current virtual
request.

Closes: https://gitlab.freedesktop.org/drm/intel/issues/1510
Fixes: 077413c22dbb ("drm/i915: Load balancing across a virtual engine")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200325130059.30600-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gt/intel_lrc.c