[Intel-gfx] [PATCH 2/2] drm/i915: Reject an attempt to create a GGTT vma larger than the GTT

Chris Wilson chris at chris-wilson.co.uk
Thu Jan 19 13:24:18 UTC 2017


On Thu, Jan 19, 2017 at 03:18:03PM +0200, Joonas Lahtinen wrote:
> On to, 2017-01-19 at 12:58 +0000, Chris Wilson wrote:
> > For accessing large objects through the global GTT we enforce the use of
> > partial views, and sanity check that the vma->size doesn't overflow and
> > fits within the address space. To prevent 4GiB triggering the assert,
> > catch the attempt to create the full sized vma early.
> > 
> > Testcase: igt/gem_exec_reloc/gtt-32
> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> 
> <SNIP>
> 
> > @@ -3679,6 +3679,12 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
> >  
> >  	lockdep_assert_held(&obj->base.dev->struct_mutex);
> >  
> > +	/* Disallow a single VMA to occupy the entire GGTT, and catch any
> > +	 * attempt to create a normal VMA larger than the GGTT.
> > +	 */
> > +	if (!view && obj->base.size >= vm->total)
> > +		return ERR_PTR(-ENOSPC);
> 
> Too sloppy. How many bytes less than the full size are OK?

None.
 
> Change the test to be > vm->total and then it's better.

The rejection at vm->total is to prevent the overflow.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list