drm/xe: Port Xe to GPUVA
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:Matthew Brost <matthew.brost@intel.com> Reviewed-by:
Thomas Hellström <thomas.hellstrom@linux.intel.com>
parent
9f990cc6
No related branches found
No related tags found
Showing
- drivers/gpu/drm/xe/tests/xe_migrate.c 1 addition, 1 deletiondrivers/gpu/drm/xe/tests/xe_migrate.c
- drivers/gpu/drm/xe/xe_bo.c 4 additions, 3 deletionsdrivers/gpu/drm/xe/xe_bo.c
- drivers/gpu/drm/xe/xe_device.c 1 addition, 1 deletiondrivers/gpu/drm/xe/xe_device.c
- drivers/gpu/drm/xe/xe_gt_pagefault.c 7 additions, 13 deletionsdrivers/gpu/drm/xe/xe_gt_pagefault.c
- drivers/gpu/drm/xe/xe_migrate.c 5 additions, 5 deletionsdrivers/gpu/drm/xe/xe_migrate.c
- drivers/gpu/drm/xe/xe_pt.c 19 additions, 21 deletionsdrivers/gpu/drm/xe/xe_pt.c
- drivers/gpu/drm/xe/xe_pt.h 1 addition, 1 deletiondrivers/gpu/drm/xe/xe_pt.h
- drivers/gpu/drm/xe/xe_vm.c 866 additions, 921 deletionsdrivers/gpu/drm/xe/xe_vm.c
- drivers/gpu/drm/xe/xe_vm.h 26 additions, 9 deletionsdrivers/gpu/drm/xe/xe_vm.h
- drivers/gpu/drm/xe/xe_vm_madvise.c 15 additions, 61 deletionsdrivers/gpu/drm/xe/xe_vm_madvise.c
- drivers/gpu/drm/xe/xe_vm_types.h 116 additions, 57 deletionsdrivers/gpu/drm/xe/xe_vm_types.h
Loading