[Intel-gfx] [PATCH 13/28] drm/i915: Avoid clearing preallocated regions from the GTT

Chris Wilson chris at chris-wilson.co.uk
Tue May 1 19:35:01 CEST 2012


On Tue, 1 May 2012 19:30:10 +0200, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Tue, Apr 24, 2012 at 03:47:42PM +0100, Chris Wilson wrote:
> > +	/* Clear any non-preallocated blocks */
> > +	list_for_each_entry(entry, &dev_priv->mm.gtt_space.hole_stack, hole_stack) {
> > +		unsigned long hole_start = entry->start + entry->size;
> > +		unsigned long hole_end = list_entry(entry->node_list.next,
> > +						    struct drm_mm_node,
> > +						    node_list)->start;
> > +
> > +		DRM_DEBUG_KMS("clearing unused GTT space: [%lx, %lx]\n",
> > +			      hole_start, hole_end);
> > +
> > +		intel_gtt_clear_range(hole_start / PAGE_SIZE,
> > +				      (hole_end-hole_start) / PAGE_SIZE);
> > +	}
> 
> Assuming I'm reading the code correctly this does not clear the unmanaged
> guard page at the end of the gtt.

Right, missed. The simplest fix would seem to be do that as an explicit
step afterwards. Bonus marks for commentary.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list