[Intel-gfx] [PATCH 3/4] drm/i915: Skip cancelled requests in flight

Chris Wilson chris at chris-wilson.co.uk
Wed Mar 8 11:49:20 UTC 2017


On Wed, Mar 08, 2017 at 11:40:09AM +0000, Chris Wilson wrote:
> @@ -486,6 +503,10 @@ submit_notify(struct i915_sw_fence *fence, enum i915_sw_fence_notify state)
>  	switch (state) {
>  	case FENCE_COMPLETE:
>  		trace_i915_gem_request_submit(request);
> +		if (unlikely(fence->error == -EIO)) {
> +			i915_gem_request_skip(request);
> +			dma_fence_set_error(&request->fence, fence->error);
> +		}

Hmm. This expects the GPU to recover before third party fences complete.
First party completion will propagate the -EIO, but still we submit to a
wedged gpu.

Needs a
		if (i915_terminally_wedged(request->i915)) {
			dma_fence_set_error(-EIO);
			i915_gem_request_submit(request);
			intel_engine_init_global_seqno(request->engine, request->global_seqno);
		} else
>  		request->engine->submit_request(request);
>  		break;

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list