]> 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)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 26 Mar 2020 17:21:30 +0000 (10:21 -0700)
commit9a8c31dd98cc306b7b6f53d1e439b6b5f3db3e7a
treec52b5b2310c02a0b5950b5786b94b8e8a43c611b
parentce3be9b7e131d1cac123a34d17903cd651a6821b
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
(cherry picked from commit 6c81e21a4742385c00713137c6fdcade0412e93c)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/gt/intel_lrc.c