drm/i915: Disable semaphore inter-engine sync without timeslicing
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 May 2020 14:06:16 +0000 (15:06 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 May 2020 16:18:25 +0000 (17:18 +0100)
commit0eb670aac27b1d615004c29efec595616e3e091a
tree4138768456500d9252afa9dc04525dab2bf55025
parent4f44afe85243f5d97db2dd14528870c09b3cd887
drm/i915: Disable semaphore inter-engine sync without timeslicing

Since the removal of the no-semaphore boosting, we rely on timeslicing to
reorder passed inter-dependency hogs across the engines. However, we
require preemption to support timeslicing into user payloads, and not all
machine support preemption so we do not universally enable timeslicing,
even when it would correctly preempt our own inter-engine semaphores.
Since timeslicing and semaphore priority deboosting is now disabled on
Broadwell/Braswell, we have to follow suite and not use semaphores.

Testcase: igt/gem_exec_schedule/semaphore-codependency # bdw/bsw
Fixes: 18e4af04d218 ("drm/i915: Drop no-semaphore boosting")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200521140617.30015-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_context.c