[Intel-gfx] [PATCH 3/9] drm/i915: Prevent using semaphores to chain up to external fences

Chris Wilson chris at chris-wilson.co.uk
Fri May 8 15:56:46 UTC 2020

Quoting Mika Kuoppala (2020-05-08 16:44:48)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> > Quoting Mika Kuoppala (2020-05-08 16:37:15)
> >> Chris Wilson <chris at chris-wilson.co.uk> writes:
> >> 
> >> > The downside of using semaphores is that we lose metadata passing
> >> > along the signaling chain. This is particularly nasty when we
> >> > need to pass along a fatal error such as EFAULT or EDEADLK. For
> >> > fatal errors we want to scrub the request before it is executed,
> >> > which means that we cannot preload the request onto HW and have
> >> > it wait upon a semaphore.
> >> 
> >> b is waiting on a, a fails and we want to release b with error?
> >
> > Yes. B is submitted before A, and if B is relying on A to setup GPU page
> I guess this has to be A is before B.
> > tables or other interesting things, we can't let B run if A dies. For
> > the EDEADLK if B is waiting on A, but then A is submitted with a wait on
> > B -- we have to untangle that mess.
> Avoiding the hw semaphore makes sense

It's an unfortunate necessity, unless we can work in a conditional jump
after the semaphore. But it also requires sampling all the possible
error signals :(

More information about the Intel-gfx mailing list