Re: [PATCH 02/16] drm/i915: Convert non-blocking waits for requests over to using RCU

Chris Wilson
2016-08-03T13:36:25Z

On Wed, Aug 03, 2016 at 04:23:16PM +0300, Joonas Lahtinen wrote:
> On ma, 2016-08-01 at 19:22 +0100, Chris Wilson wrote:
> >  /**
> > @@ -1647,6 +1629,15 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
> >   int ret = 0;
> >   bool write = !!(vmf->flags & FAULT_FLAG_WRITE);
> >
> > + /* Try to flush the object off the GPU first without holding the lock.
> > +  * Upon acquiring the lock, we will perform our sanity checks and then
> > +  * repeat the flush holding the lock in the normal manner to catch cases
> > +  * where we are gazumped.
> > +  */
> > + ret = __unsafe_wait_rendering(obj, NULL, !write);
> > + if (ret)
> > + goto err;
> > +
>
> Why do you lift this call super early, tracing will be affected at
> least.

I was moving it out of the rpm_get, since we don't need to be inside that
runtime barrier. (That rpm get is very interesting btw, but that's for
later!)

The trace can be moved as well.
-Chris

--
Chris Wilson, Intel Open Source Technology Centre