From d78685787a595ca68aec08074744fa23ed4f3d93 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 7 Aug 2015 12:59:57 +0100 Subject: [PATCH] sna: Fix sync'ing to the most recent request on forced cache cleanup We picked the oldest, not most recent and so were not recovering as much memory as desired. Signed-off-by: Chris Wilson --- src/sna/kgem.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sna/kgem.c b/src/sna/kgem.c index be0480c1..30058dca 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -4369,13 +4369,14 @@ bool kgem_cleanup_cache(struct kgem *kgem) if (!list_is_empty(&kgem->requests[n])) { struct kgem_request *rq; - rq = list_first_entry(&kgem->requests[n], - struct kgem_request, - list); + rq = list_last_entry(&kgem->requests[n], + struct kgem_request, + list); DBG(("%s: sync on cleanup\n", __FUNCTION__)); kgem_bo_wait(kgem, rq->bo); } + assert(list_is_empty(&kgem->requests[n])); } kgem_retire(kgem);