• Thomas Hellström's avatar
    drm/ttm: Use the LRU walker helper for swapping · 10efe34d
    Thomas Hellström authored
    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: default avatarThomas 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.comSigned-off-by: default avatarChristian König <christian.koenig@amd.com>
    10efe34d
ttm_resource.h 14.9 KB