drm/i915: Serialise with remote retirement
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 Nov 2019 07:10:41 +0000 (07:10 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 Nov 2019 11:53:55 +0000 (11:53 +0000)
commit2d0fb251360ab7eccbffd99f6933a2a4de678d52
tree419e6e9b5bf5184b7348f00d0c57827d33b7ef4e
parent689122dcc36e08f53732adf7ae0246f62eff3eb6
drm/i915: Serialise with remote retirement

Since retirement may be running in a worker on another CPU, it may be
skipped in the local intel_gt_wait_for_idle(). To ensure the state is
consistent for our sanity checks upon load, serialise with the remote
retirer by waiting on the timeline->mutex.

Outside of this use case, e.g. on suspend or module unload, we expect the
slack to be picked up by intel_gt_pm_wait_for_idle() and so prefer to
put the special case serialisation with retirement in its single user,
for now at least.

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/20191121071044.97798-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_gem.c