drm/i915/ttm: use cached system pages when evicting lmem
authorMatthew Auld <matthew.auld@intel.com>
Mon, 18 Oct 2021 09:10:54 +0000 (10:10 +0100)
committerMatthew Auld <matthew.auld@intel.com>
Fri, 22 Oct 2021 12:19:29 +0000 (13:19 +0100)
This should let us do an accelerated copy directly to the shmem pages
when temporarily moving lmem-only objects, where the i915-gem shrinker
can later kick in to swap out the pages, if needed.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211018091055.1998191-7-matthew.auld@intel.com
drivers/gpu/drm/i915/gem/i915_gem_ttm.c

index 8de1031a2c6e5f5ef8386eaf0c1608c61f65aa98..d37581d9194cc4aabde0d07a20904664367e0495 100644 (file)
@@ -134,11 +134,11 @@ static enum ttm_caching
 i915_ttm_select_tt_caching(const struct drm_i915_gem_object *obj)
 {
        /*
-        * Objects only allowed in system get cached cpu-mappings.
-        * Other objects get WC mapping for now. Even if in system.
+        * Objects only allowed in system get cached cpu-mappings, or when
+        * evicting lmem-only buffers to system for swapping. Other objects get
+        * WC mapping for now. Even if in system.
         */
-       if (obj->mm.region->type == INTEL_MEMORY_SYSTEM &&
-           obj->mm.n_placements <= 1)
+       if (obj->mm.n_placements <= 1)
                return ttm_cached;
 
        return ttm_write_combined;