• Matthew Brost's avatar
    drm/xe: Port Xe to GPUVA · b06d47be
    Matthew Brost authored
    Rather than open coding VM binds and VMA tracking, use the GPUVA
    library. GPUVA provides a common infrastructure for VM binds to use mmap
    / munmap semantics and support for VK sparse bindings.
    
    The concepts are:
    
    1) xe_vm inherits from drm_gpuva_manager
    2) xe_vma inherits from drm_gpuva
    3) xe_vma_op inherits from drm_gpuva_op
    4) VM bind operations (MAP, UNMAP, PREFETCH, UNMAP_ALL) call into the
    GPUVA code to generate an VMA operations list which is parsed, committed,
    and executed.
    
    v2 (CI): Add break after default in case statement.
    v3: Rebase
    v4: Fix some error handling
    v5: Use unlocked version VMA in error paths
    v6: Rebase, address some review feedback mainly Thomas H
    v7: Fix compile error in xe_vma_op_unwind, address checkpatch
    Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
    Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    b06d47be
xe_migrate.c 11.9 KB