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