[Intel-gfx] [PATCH] drm/i915: Only close vma we open

Chris Wilson chris at chris-wilson.co.uk
Fri Apr 24 10:22:13 UTC 2020


Quoting Andi Shyti (2020-04-24 11:16:17)
> Hi Chris,
> 
> On Wed, Apr 22, 2020 at 08:05:58PM +0100, Chris Wilson wrote:
> > The history of i915_vma_close() is confusing, as is its use. As the
> > lifetime of the i915_vma is currently bounded by the object it is
> > attached to, we needed a means of identify when a vma was no longer in
> > use by userspace (via the user's fd). This is further complicated by
> > that only ppgtt vma should be closed at the user's behest, as the ggtt
> > were always shared.
> > 
> > Now that we attach the vma to a lut on the user's context, the open
> > count does indicate how many unique and open context/vm are referencing
> > this vma from the user. As such, we can and should just use the
> > open_count to track when the vma is still in use by userspace.
> > 
> > It's a poor man's replacement for reference counting.
> > 
> > Closes: https://gitlab.freedesktop.org/drm/intel/issues/1193
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> 
> [...]
> 
> > @@ -1777,21 +1737,20 @@ int i915_gem_huge_page_mock_selftests(void)
> >       if (!i915_vm_is_4lvl(&ppgtt->vm)) {
> >               pr_err("failed to create 48b PPGTT\n");
> >               err = -EINVAL;
> > -             goto out_close;
> > +             goto out_put;
> >       }
> >  
> >       /* If we were ever hit this then it's time to mock the 64K scratch */
> >       if (!i915_vm_has_scratch_64K(&ppgtt->vm)) {
> >               pr_err("PPGTT missing 64K scratch page\n");
> >               err = -EINVAL;
> > -             goto out_close;
> > +             goto out_put;
> >       }
> >  
> >       err = i915_subtests(tests, ppgtt);
> >  
> > -out_close:
> > +out_put:
> >       i915_vm_put(&ppgtt->vm);
> 
> Did anything change here?

Oh, diff says no :)

By this point I was doing search and replace and given up caring.
-Chris


More information about the Intel-gfx mailing list