mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-24 08:04:06 +07:00
6846895fde
When under severe stress for GTT mappable space, the LRU eviction model falls off a cliff. We spend all our time scanning the much larger non-mappable area searching for something within the mappable zone we can evict. Turn this on its head by only using the full vma for the object if it is already pinned in the mappable zone or there is sufficient *free* space to accommodate it (prioritizing speedy reuse). If there is not, immediately fall back to using small chunks (tilerow for GTT mmap, single pages for pwrite/relocation) and using random eviction before doing a full search. Testcase: igt/gem_concurrent_blt References: https://bugs.freedesktop.org/show_bug.cgi?id=110848 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190821123234.19194-1-chris@chris-wilson.co.uk |
||
---|---|---|
.. | ||
selftests | ||
i915_gem_busy.c | ||
i915_gem_clflush.c | ||
i915_gem_clflush.h | ||
i915_gem_client_blt.c | ||
i915_gem_client_blt.h | ||
i915_gem_context_types.h | ||
i915_gem_context.c | ||
i915_gem_context.h | ||
i915_gem_dmabuf.c | ||
i915_gem_domain.c | ||
i915_gem_execbuffer.c | ||
i915_gem_fence.c | ||
i915_gem_internal.c | ||
i915_gem_ioctls.h | ||
i915_gem_mman.c | ||
i915_gem_object_blt.c | ||
i915_gem_object_blt.h | ||
i915_gem_object_types.h | ||
i915_gem_object.c | ||
i915_gem_object.h | ||
i915_gem_pages.c | ||
i915_gem_phys.c | ||
i915_gem_pm.c | ||
i915_gem_pm.h | ||
i915_gem_shmem.c | ||
i915_gem_shrinker.c | ||
i915_gem_shrinker.h | ||
i915_gem_stolen.c | ||
i915_gem_stolen.h | ||
i915_gem_throttle.c | ||
i915_gem_tiling.c | ||
i915_gem_userptr.c | ||
i915_gem_wait.c | ||
i915_gemfs.c | ||
i915_gemfs.h | ||
Makefile |