[Intel-gfx] [PATCH 2/3] drm/i915/selftests: Use full release for local ppgtt allocation
Chris Wilson
chris at chris-wilson.co.uk
Thu Jul 5 09:53:31 UTC 2018
Quoting Tvrtko Ursulin (2018-07-05 10:50:36)
>
> On 05/07/2018 07:56, Chris Wilson wrote:
> > We can now use the full release mechanism (i915_ppgtt_put) for our local
> > ppgtt allocation in igt_ppgtt_alloc.
> >
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> > drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
> > index 4bfb0537f9be..e108fe4e0fd9 100644
> > --- a/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/selftests/i915_gem_gtt.c
> > @@ -202,9 +202,8 @@ static int igt_ppgtt_alloc(void *arg)
> >
> > err_ppgtt_cleanup:
> > mutex_lock(&dev_priv->drm.struct_mutex);
> > - ppgtt->vm.cleanup(&ppgtt->vm);
> > + i915_ppgtt_put(ppgtt);
> > mutex_unlock(&dev_priv->drm.struct_mutex);
> > - kfree(ppgtt);
> > return err;
> > }
> >
> >
>
> Hm, it's not obvious why this works, if it does. This ppgtt it creates
> does not call kref_init on ppgtt->ref, or i915_address_space_init.
> Colour me confused.
Are you sure? There were a few ordering issues that required pushing
i915_address_space_init earlier into __hw_ppgtt_create() itself that
dragged the kref_init along for the fun.
-Chris
More information about the Intel-gfx
mailing list