[Intel-gfx] [PATCH 20/29] drm/i915: Fix up map and fenceable for VMA

Daniel Vetter daniel at ffwll.ch
Wed Aug 7 22:32:16 CEST 2013


On Wed, Aug 07, 2013 at 11:37:04AM -0700, Ben Widawsky wrote:
> On Tue, Aug 06, 2013 at 09:11:54PM +0200, Daniel Vetter wrote:
> > On Wed, Jul 31, 2013 at 05:00:13PM -0700, Ben Widawsky wrote:
> > > formerly: "drm/i915: Create VMAs (part 3.5) - map and fenceable
> > > tracking"
> > > 
> > > The map_and_fenceable tracking is per object. GTT mapping, and fences
> > > only apply to global GTT. As such,  object operations which are not
> > > performed on the global GTT should not effect mappable or fenceable
> > > characteristics.
> > > 
> > > Functionally, this commit could very well be squashed in to a previous
> > > patch which updated object operations to take a VM argument.  This
> > > commit is split out because it's a bit tricky (or at least it was for
> > > me).
> > > 
> > > Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> > > ---
> > >  drivers/gpu/drm/i915/i915_gem.c | 9 ++++++---
> > >  1 file changed, 6 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > > index d4d6444..ec23a5c 100644
> > > --- a/drivers/gpu/drm/i915/i915_gem.c
> > > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > > @@ -2626,7 +2626,7 @@ int i915_vma_unbind(struct i915_vma *vma)
> > >  
> > >  	trace_i915_vma_unbind(vma);
> > >  
> > > -	if (obj->has_global_gtt_mapping)
> > > +	if (obj->has_global_gtt_mapping && i915_is_ggtt(vma->vm))
> > >  		i915_gem_gtt_unbind_object(obj);
> > >  	if (obj->has_aliasing_ppgtt_mapping) {
> > >  		i915_ppgtt_unbind_object(dev_priv->mm.aliasing_ppgtt, obj);
> > 
> > Hm, shouldn't we do the is_ggtt check for both? After all only the global
> > ggtt can be aliased ever ... This would also be more symmetric with some
> > of the other global gtt checks I've spotted. You're take or will that run
> > afoul of your Great Plan?
> > -Daniel
> > 
> 
> You're right. The check makes sense for both cases. In both the original
> series, and n a few patches, this code turns into:
> vma->vm->unbind_vma(vma);

Ok, I've killed it and merged the patch.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list