[Intel-gfx] [PATCH 5/6] drm/i915/ttm: switch over to ttm_buddy_man
Thomas Hellström
thomas.hellstrom at linux.intel.com
Tue Jun 8 07:39:58 UTC 2021
On Mon, 2021-06-07 at 19:22 +0100, Matthew Auld wrote:
> Move back to the buddy allocator for managing device local memory,
> and
> restore the lost mock selftests. Keep around the range manager
> related
> bits, since we likely need this for managing stolen at some point.
> For
> stolen we also don't need to reserve anything so no need to support a
> generic reserve interface.
>
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 26 +--
> drivers/gpu/drm/i915/intel_memory_region.c | 55 +-----
> drivers/gpu/drm/i915/intel_memory_region.h | 17 --
> drivers/gpu/drm/i915/intel_region_ttm.c | 100 +++--------
> .../drm/i915/selftests/intel_memory_region.c | 170 ++++++++++++----
> --
>
...
>
> static int i915_ttm_move(struct ttm_buffer_object *bo, bool evict,
> @@ -661,20 +661,8 @@ int __i915_gem_ttm_object_init(struct
> intel_memory_region *mem,
> static struct lock_class_key lock_class;
> struct drm_i915_private *i915 = mem->i915;
> enum ttm_bo_type bo_type;
> - size_t alignment = 0;
> int ret;
>
> - /* Adjust alignment to GPU- and CPU huge page sizes. */
> -
> - if (mem->is_range_manager) {
> - if (size >= SZ_1G)
> - alignment = SZ_1G >> PAGE_SHIFT;
> - else if (size >= SZ_2M)
> - alignment = SZ_2M >> PAGE_SHIFT;
> - else if (size >= SZ_64K)
> - alignment = SZ_64K >> PAGE_SHIFT;
> - }
> -
> drm_gem_private_object_init(&i915->drm, &obj->base, size);
> i915_gem_object_init(obj, &i915_gem_ttm_obj_ops, &lock_class,
> flags);
> i915_gem_object_init_memory_region(obj, mem);
> @@ -696,7 +684,7 @@ int __i915_gem_ttm_object_init(struct
> intel_memory_region *mem,
> */
> obj->base.vma_node.driver_private = i915_gem_to_ttm(obj);
> ret = ttm_bo_init(&i915->bdev, i915_gem_to_ttm(obj), size,
> - bo_type, &i915_sys_placement, alignment,
> + bo_type, &i915_sys_placement, PAGE_SIZE,
Actually just realized that the alignment is specified in PAGE_SIZE
units, so above should be s/PAGE_SIZE/1/. Might need to check that the
buddy TTM interface gets this right as well.
More information about the Intel-gfx
mailing list