[Intel-gfx] [PATCH] drm/i915: Claim vma while under closed_lock in i915_vma_parked()

Chris Wilson chris at chris-wilson.co.uk
Fri Dec 6 11:16:16 UTC 2019


Quoting Tvrtko Ursulin (2019-12-06 11:12:42)
> 
> On 05/12/2019 21:41, Chris Wilson wrote:
> > Remove the vma we wish to destroy from the gt->closed_list to avoid
> > having two i915_vma_parked() try and free it.
> > 
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> >   drivers/gpu/drm/i915/i915_vma.c | 4 +++-
> >   1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_vma.c b/drivers/gpu/drm/i915/i915_vma.c
> > index 6db35b9dead8..9ca6664c190c 100644
> > --- a/drivers/gpu/drm/i915/i915_vma.c
> > +++ b/drivers/gpu/drm/i915/i915_vma.c
> > @@ -1053,7 +1053,9 @@ void i915_vma_parked(struct intel_gt *gt)
> >               if (!kref_get_unless_zero(&obj->base.refcount))
> >                       continue;
> >   
> > -             if (!i915_vm_tryopen(vm)) {
> > +             if (i915_vm_tryopen(vm)) {
> > +                     list_del_init(&vma->closed_link);
> > +             } else {
> >                       i915_gem_object_put(obj);
> >                       obj = NULL;
> >               }
> > 
> 
> Fixes 2850748ef8763 I think. Until then there was a list_del_init in here.

No. Until aa5e4453dc05 ("drm/i915/gem: Try to flush pending unbind
events") there as only a single caller (__gt_park) so we knew there
would only be one iterator. Still, either way, there's going to be a
massive fixup patch for Joonas to apply.
-Chris


More information about the Intel-gfx mailing list