[Intel-gfx] [PATCH 2/2] drm/i915: Request PIN_GLOBAL when pinning a vma for GTT relocations

Chris Wilson chris at chris-wilson.co.uk
Mon Nov 3 21:49:08 CET 2014


On Mon, Nov 03, 2014 at 04:20:58PM +0100, Daniel Vetter wrote:
> On Fri, Oct 31, 2014 at 01:53:53PM +0000, Chris Wilson wrote:
> > Always require PIN_GLOBAL when we want a mappable offset (PIN_MAPPABLE).
> > This causes the pin to fixup the global binding in cases were the vma
> > was already bound (and due to the proceeding bug, we considered it to be
> > already mappable).
> > 
> > References: https://bugs.freedesktop.org/show_bug.cgi?id=85671
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c            | 2 +-
> >  drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index fe6c602a2a00..0c82a4d2cd0c 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -3479,7 +3479,7 @@ search_free:
> >  
> >  	trace_i915_vma_bind(vma, flags);
> >  	vma->bind_vma(vma, obj->cache_level,
> > -		      flags & (PIN_MAPPABLE | PIN_GLOBAL) ? GLOBAL_BIND : 0);
> > +		      flags & PIN_GLOBAL ? GLOBAL_BIND : 0);
> 
> Hm, why this? If we want to reduce the interface complexity maybe we
> should throw in a WARN_ON if PIN_MAPPABLE is set, but PIN_GLOBAL isnt?
> Just removing this safeguard make me a bit uneasy ...

Just review all the users, takes less than 2 minutes ;)
It's a wart in the interface, which should do as I say, not guess, and
PIN_MAPPABLE doesn't translate well to GLOBAL_BIND imo.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list