drm/i915/gt: Introduce barrier pulses along engines
To flush idle barriers, and even inflight requests, we want to send a preemptive 'pulse' along an engine. We use a no-op request along the pinned kernel_context at high priority so that it should run or else kick off the stuck requests. We can use this to ensure idle barriers are immediately flushed, as part of a context cancellation mechanism, or as part of a heartbeat mechanism to detect and reset a stuck GPU. Signed-off-by:Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by:
Tvrtko Ursulin <tvrtko.ursulin@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191021174339.5389-1-chris@chris-wilson.co.uk
Showing
- drivers/gpu/drm/i915/Makefile 2 additions, 1 deletiondrivers/gpu/drm/i915/Makefile
- drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c 77 additions, 0 deletionsdrivers/gpu/drm/i915/gt/intel_engine_heartbeat.c
- drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h 15 additions, 0 deletionsdrivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
- drivers/gpu/drm/i915/gt/intel_engine_pm.c 1 addition, 1 deletiondrivers/gpu/drm/i915/gt/intel_engine_pm.c
- drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c 159 additions, 0 deletionsdrivers/gpu/drm/i915/gt/selftest_engine_heartbeat.c
- drivers/gpu/drm/i915/i915_active.c 1 addition, 0 deletionsdrivers/gpu/drm/i915/i915_active.c
- drivers/gpu/drm/i915/i915_priolist_types.h 1 addition, 0 deletionsdrivers/gpu/drm/i915/i915_priolist_types.h
- drivers/gpu/drm/i915/selftests/i915_live_selftests.h 1 addition, 0 deletionsdrivers/gpu/drm/i915/selftests/i915_live_selftests.h
Loading
Please register or sign in to comment