linux_dsm_epyc7002/drivers/gpu/drm/i915/gem
Chris Wilson 3b4fa9640c drm/i915: Track the purgeable objects on a separate eviction list
Currently the purgeable objects, I915_MADV_DONTNEED, are mixed in the
normal bound/unbound lists. Every shrinker pass starts with an attempt
to purge from this set of unneeded objects, which entails us doing a
walk over both lists looking for any candidates. If there are none, and
since we are shrinking we can reasonably assume that the lists are
full!, this becomes a very slow futile walk.

If we separate out the purgeable objects into own list, this search then
becomes its own phase that is preferentially handled during shrinking.
Instead the cost becomes that we then need to filter the purgeable list
if we want to distinguish between bound and unbound objects.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190530203500.26272-1-chris@chris-wilson.co.uk
2019-05-31 21:23:51 +01:00
..
selftests drm/i915: fix use of uninitialized pointer vaddr 2019-05-31 11:40:00 +01:00
i915_gem_busy.c drm/i915: Move GEM object busy checking to its own file 2019-05-28 12:45:29 +01:00
i915_gem_clflush.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_gem_clflush.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_client_blt.c drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
i915_gem_client_blt.h drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
i915_gem_context_types.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_context.c drm/i915: Drop the deferred active reference 2019-05-28 12:45:29 +01:00
i915_gem_context.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_dmabuf.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_gem_domain.c drm/i915: Track the purgeable objects on a separate eviction list 2019-05-31 21:23:51 +01:00
i915_gem_execbuffer.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_gem_fence.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_gem_internal.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_gem_ioctls.h
i915_gem_mman.c drm/i915: Move mmap and friends to its own file 2019-05-28 12:45:29 +01:00
i915_gem_object_blt.c drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
i915_gem_object_blt.h drm/i915: add in-kernel blitter client 2019-05-30 12:01:44 +01:00
i915_gem_object_types.h drm/i915: Drop the deferred active reference 2019-05-28 12:45:29 +01:00
i915_gem_object.c drm/i915: Track the purgeable objects on a separate eviction list 2019-05-31 21:23:51 +01:00
i915_gem_object.h drm/i915: Drop the deferred active reference 2019-05-28 12:45:29 +01:00
i915_gem_pages.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_gem_phys.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_gem_pm.c drm/i915: Track the purgeable objects on a separate eviction list 2019-05-31 21:23:51 +01:00
i915_gem_pm.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_shmem.c drm/i915: Track the purgeable objects on a separate eviction list 2019-05-31 21:23:51 +01:00
i915_gem_shrinker.c drm/i915: Track the purgeable objects on a separate eviction list 2019-05-31 21:23:51 +01:00
i915_gem_stolen.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_throttle.c drm/i915: Move GEM client throttling to its own file 2019-05-28 12:45:29 +01:00
i915_gem_tiling.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_userptr.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_gem_wait.c drm/i915: Move GEM object waiting to its own file 2019-05-28 12:45:29 +01:00
i915_gemfs.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gemfs.h drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
Makefile
Makefile.header-test