Test-with: <20230213095040.13457-2-janusz.krzyszto...@linux.intel.com>

New igt@gem_barrier_race@remote-request subtest, intended for triggering
list corruptions reported by perf users, also revealed issues potentially
related to engine barrier tasks lists handling.  For example, timeouts on
infinite __i915_active_wait() can be potentially caused by the list
falsely reported as empty to intel_engine_flush_barriers().

Protect sensitive users of a barrier tasks list from races with a
dedicated spinlock.

Note:
Similar to "drm/i915/active: Fix misuse of non-idle barriers as fence
trackers", I'm submitting this fix with a request to CI for testing it
with trybot submission of the new igt@gem_barrier_race@remote-request
subtest, not yet in upstream IGT, to get comparable results from the
widest possible HW range.

Janusz Krzysztofik (1):
  drm/i915/active: Serialize access to barrier tasks lists

 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |  6 +++
 .../gpu/drm/i915/gt/intel_engine_heartbeat.c  | 10 ++++-
 drivers/gpu/drm/i915/gt/intel_engine_pm.c     |  4 ++
 drivers/gpu/drm/i915/gt/intel_engine_types.h  |  1 +
 drivers/gpu/drm/i915/gt/mock_engine.c         |  2 +
 .../drm/i915/gt/selftest_engine_heartbeat.c   |  5 +++
 drivers/gpu/drm/i915/i915_active.c            | 39 +++++++++++++++----
 7 files changed, 59 insertions(+), 8 deletions(-)

-- 
2.25.1

Reply via email to