Re: [PATCH v2 05/14] drm/i915: Deconstruct execute fence

Chris Wilson
2017-02-17T14:41:12Z

On Fri, Feb 17, 2017 at 02:26:04PM +0000, Tvrtko Ursulin wrote:
>
> On 14/02/2017 09:54, Chris Wilson wrote:
> >@@ -1036,12 +1011,11 @@ long i915_wait_request(struct drm_i915_gem_request *req,
> > if (flags & I915_WAIT_LOCKED)
> > add_wait_queue(errq, &reset);
> >
> >- if (!i915_sw_fence_done(&req->execute)) {
> >- DEFINE_WAIT(exec);
> >-
> >+ reset_wait_queue(&req->execute, &exec);
> >+ if (!req->global_seqno) {
> > do {
> >- prepare_to_wait(&req->execute.wait, &exec, state);
>
> Somehow I missed the moment when reset_wait_queue was introduced.
> But why you can't just use prepare_to_wait here?

In a few patches, we starting looping around at this point, so reset is
required then (and choosing to do reset now just avoid a few lines
later on). Then in a few more patches, the reset_wait_queue is eliminated
entirely.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre