Hi all, This patch series implements the fair-lru eviction Chris Wilson already posted with a twist. It's essentially the same idea & algorithm. Differnences versus his patch: - Doesn't do any allocations while scanning. - Implemented in drm_mm.c In other words, this should also be usable by ttm. The idea is simple: Scan through the lru, marking objects as evictable until there is a large area of memory free/free-able. Then walk through all the scanned objects in reverse, checking which ones fall into this hole. Finally evicting them. Comments, ideas highly welcome. As per usual, I couldn't resist and had to clean up the code in drm_mm.c a little. Yours, Daniel Daniel Vetter (9): list.h: add list_for_each_entry_safe_from_reverse drm: use list_for_each_entry in drm_mm.c drm: kill drm_mm_node->private drm: kill dead code in drm_mm.c drm: sane naming for drm_mm.c drm_mm: extract check_free_mm_node drm: implement helper functions for scanning lru list drm/i915: prepare for fair lru eviction drm/i915: implement fair lru eviction drivers/gpu/drm/drm_mm.c | 359 ++++++++++++++++++++++++------------- drivers/gpu/drm/i915/i915_gem.c | 122 ++++++++----- drivers/gpu/drm/ttm/ttm_bo.c | 6 - drivers/gpu/drm/ttm/ttm_bo_util.c | 2 - include/drm/drm_mm.h | 27 +++- include/linux/list.h | 15 ++ 6 files changed, 347 insertions(+), 184 deletions(-) _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel