[Intel-gfx] [PATCH v1.1 1/5] drm/i915: Handle return value in intel_pin_and_fence_fb_obj, v2.

Chris Wilson chris at chris-wilson.co.uk
Fri Jul 24 07:02:22 PDT 2015


On Fri, Jul 24, 2015 at 04:26:27PM +0300, Ander Conselvan De Oliveira wrote:
> On Tue, 2015-07-21 at 16:09 +0200, Maarten Lankhorst wrote:
> > -EDEADLK has special meaning in atomic, but get_fence may call
> > i915_find_fence_reg which can return -EDEADLK.
> > 
> > This has special meaning in the atomic world, so convert the error
> > to -EBUSY for this case.
> 
> Doesn't this change the behavior of intel_crtc_page_flip() slightly? It
> now would return -EBUSY to user space if it can't find a fence instead
> of -EDEADLK. Not sure if that is a problem though. I don't expect user
> space would actually check for -EDEADLK.

It's extreme, but we could fix the -EDEADLK by dropping the struct_mutex
and flushing the unpin workqueue (there is no other conceivable way of
triggering EDEADLK here other than uncompleted flips except for a kernel
bug ofc). I can confidently state that no one has or ever will see an
EDEADLK here - and even if it did userspace is best to treat it exactly
the same as any other error path, cancel the flip and try again later.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list