On Mon, Jul 27, 2015 at 10:26:26AM +0100, Chris Wilson wrote: > When we shrink our working sets, we want to avoid stealing pages from > objects that likely to be reused in the near future. We first look at > inactive objects before processing active objects - but what about a > recently active object that is about to be used again. That object's > position in the bound_list is ordered by the time of binding, not the > time of last use, so the most recently used inactive object could well > be at the head of the shrink list. To compensate, give the object a bump > to MRU when it becomes inactive (thus transitioning to the end of the > first pass in shrink lists). Conversely, bumping on inactive makes > bumping on active useless, since when we do have to reap from the active > working set, everything is going to become inactive very quickly and the > order pretty much random - just hope for the best at that point, as once > we start stalling on active objects, we can hope that the rebinding > neatly orders vital objects. > > Suggested-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> Queued for -next, thanks for the patch and let's see what happens. We have a history of innocent list order changes uncovering interesting bugs ... -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx