[Intel-gfx] [PATCH 29/39] drm/i915: Make i915_vma track its own kref
Chris Wilson
chris at chris-wilson.co.uk
Fri Jun 14 11:18:22 UTC 2019
Quoting Matthew Auld (2019-06-14 12:15:27)
> On Fri, 14 Jun 2019 at 08:10, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> >
> > Throughout the code base we internally track vma (objects bound into
> > a particular GTT), with the objects themselves being the common backing
> > storage. By making the vma itself reference counted we can start
> > operating on the vma concurrently, moving work into async threads.
> >
> > Just the conversion to making sure we keep track of the vma reference
> > counts is not particularly pleasant.
> > ---
>
> [snip]
>
> > @@ -2060,6 +2057,7 @@ static struct i915_vma *pd_vma_create(struct gen6_ppgtt *ppgtt, int size)
> > if (!vma)
> > return ERR_PTR(-ENOMEM);
> >
> > + kref_init(&vma->ref);
> > i915_active_init(&vma->active, NULL, NULL);
> >
> > vma->vm = &ggtt->vm;
>
> Just a first pass. Do we need i915_vm_get(&ggtt->vm); so we match the
> i915_vm_put() in __i915_vma_release()?
Yup. That would have an interesting explosion at some point. Tempted to
leave it to make sure CI does explode :)
Now that I mention it... I think I'll will leave a comment with the fix.
-Chris
More information about the Intel-gfx
mailing list