diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 5d685789b1f9..84f91bcc12f7 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -2385,6 +2385,13 @@ i915_gem_object_retire__read(struct drm_i915_gem_object *obj, int ring) | |||
2385 | if (obj->active) | 2385 | if (obj->active) |
2386 | return; | 2386 | return; |
2387 | 2387 | ||
2388 | /* Bump our place on the bound list to keep it roughly in LRU order | ||
2389 | * so that we don't steal from recently used but inactive objects | ||
2390 | * (unless we are forced to ofc!) | ||
2391 | */ | ||
2392 | list_move_tail(&obj->global_list, | ||
2393 | &to_i915(obj->base.dev)->mm.bound_list); | ||
2394 | |||
2388 | list_for_each_entry(vma, &obj->vma_list, vma_link) { | 2395 | list_for_each_entry(vma, &obj->vma_list, vma_link) { |
2389 | if (!list_empty(&vma->mm_list)) | 2396 | if (!list_empty(&vma->mm_list)) |
2390 | list_move_tail(&vma->mm_list, &vma->vm->inactive_list); | 2397 | list_move_tail(&vma->mm_list, &vma->vm->inactive_list); |