[Intel-gfx] pin OABUFFER to GGTT

Chris Wilson chris at chris-wilson.co.uk
Tue Jul 1 18:51:49 CEST 2014


On Tue, Jul 01, 2014 at 04:34:48PM +0000, Mateo Lozano, Oscar wrote:
> > -----Original Message-----
> > From: Chris Wilson [mailto:chris at chris-wilson.co.uk]
> > Sent: Tuesday, July 01, 2014 5:30 PM
> > To: Mateo Lozano, Oscar
> > Cc: Intel-gfx at lists.freedesktop.org; Madajczak, Tomasz
> > Subject: Re: [Intel-gfx] pin OABUFFER to GGTT
> > 
> > On Tue, Jul 01, 2014 at 04:24:56PM +0000, Mateo Lozano, Oscar wrote:
> > > Submitting again (this time copying the mailing list correctly):
> > >
> > > The bo_pin ioctl has been discarded in GEN6+ with this patch:
> > >
> > >     drm/i915: Reject the pin ioctl on gen6+
> > >
> > >     Especially with ppgtt this kinda stopped making sense. And if we
> > >     indeed need this to hack around an issue, we need something that also
> > >     works for non-root.
> > >
> > >     Signed-off-by: Daniel Vetter daniel.vetter at ffwll.ch
> > >
> > > The thing is, the performance team used this call to pin the OABUFFER to
> > GGTT and then mapping it to userspace. This OABUFFER cannot be in PPGTT
> > because: "When each context has its own Per Process GTT, this field should
> > be always set to GGTT." (BSpec dixit).
> > >
> > > Can we re-enable it? or should we find an alternative for this case?
> > 
> > EXEC_OBJECT_NEEDS_GTT?
> > -Chris
> 
> The object (AFAICT, please Tomasz correct me if I am wrong) is not really used inside any batchbuffer.

Then what's the issue? If you only use it as via a global gtt mapping it
only exists in the ggtt.

> Also:
> 
> 		if (exec[i].flags & EXEC_OBJECT_NEEDS_GTT &&
> 		    USES_FULL_PPGTT(vm->dev)) {
> 			ret = -EINVAL;
> 			goto err;
> 		}
> 

Yeah, that's just full-ppgtt not quite being ready yet.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list