]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/ttm: Use the LRU walker helper for swapping
authorThomas Hellström <thomas.hellstrom@linux.intel.com>
Fri, 5 Jul 2024 15:32:04 +0000 (17:32 +0200)
committerChristian König <christian.koenig@amd.com>
Tue, 9 Jul 2024 10:41:46 +0000 (12:41 +0200)
commit10efe34dae798c652053d4363871914c478f1475
tree26cff87feef2a56ea9a5c85b94b2fe1283dca43f
parentda966b82bf3d16f89a05732c933a589ec798d3f7
drm/ttm: Use the LRU walker helper for swapping

Rework the TTM swapping to use the LRU walker helper.
This helps fixing up the ttm_bo_swapout() interface
to be consistent about not requiring any locking.

For now mimic the current behaviour of using trylock
only. We could be using ticket-locks here but defer
that until it's deemed necessary. The TTM swapout
functionality is a bit weird anyway since it
alternates between memory types without exhausting
TTM_PL_SYSTEM first.

Intentionally keep pages as the unit of progress since
changing that to bytes is an unrelated change that can
be done later.

v6:
- Improve on error code translation in the swapout callback
  (Matthew Brost).
v7:
- Use s64 rather than long.
- Remove ttm_resource_cursor_fini() since it's no longer used.
- Rename ttm_resource_cursor_fini_locked() to
  ttm_resource_cursor_fini().
- Don't swap out pinned bos.

Cc: Christian König <christian.koenig@amd.com>
Cc: Somalapuram Amaranath <Amaranath.Somalapuram@amd.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: <dri-devel@lists.freedesktop.org>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com> #v6
Link: https://patchwork.freedesktop.org/patch/msgid/20240705153206.68526-7-thomas.hellstrom@linux.intel.com
Signed-off-by: Christian König <christian.koenig@amd.com>
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/ttm/ttm_bo_util.c
drivers/gpu/drm/ttm/ttm_device.c
drivers/gpu/drm/ttm/ttm_resource.c
include/drm/ttm/ttm_bo.h
include/drm/ttm/ttm_resource.h