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
This commit is contained in:
@@ -595,6 +595,7 @@ int i915_active_acquire_preallocate_barrier(struct i915_active *ref,
|
||||
struct llist_node *pos, *next;
|
||||
int err;
|
||||
|
||||
GEM_BUG_ON(i915_active_is_idle(ref));
|
||||
GEM_BUG_ON(!llist_empty(&ref->preallocated_barriers));
|
||||
|
||||
/*
|
||||
|
Referens i nytt ärende
Block a user