[PATCH v8 00/15] Prefetch Support for svm ranges
Himal Prasad Ghimiray
himal.prasad.ghimiray at intel.com
Tue May 13 04:02:13 UTC 2025
This series builds upon the SVM work by Matt Brost and introduces the
ability to prefetch SVM ranges. The prefetch functionality utilizes the
existing ioctl vm_bind for the user interface.
Prefetching ensures that pages are populated in the requested region and
that PTEs are updated, thereby preventing GPU page faults.
Region 0: Ranges will remain in SMEM, and only PTE updates will occur.
Region 1: Ranges will migrate to VRAM, and PTEs will be updated
accordingly
v3:
- Separate out madvise and Prefetch series
- Rebase on top of atomic fixes for svm
- address comments from Matthew Brost
v4:
- CI fixes
v5
- Move finding start addr of cpu vma to drm gpusvm layer
v6
- Rebase on top of latest SVM ATOMIC Fixes
- move eviction logic to prefetch_ranges
- Rename functions properly
v7
- Rebase on top of v8 of SVM ATOMIC Fixes
- devmem_only assigned 0 for prefetch
- s/mmget/mmget_not_zero/
v8
- Rebase
- s/struct drm_gpusvm_ctx ctx;/struct drm_gpusvm_ctx ctx = {};
Himal Prasad Ghimiray (16):
drm/gpusvm: Introduce devmem_only flag for allocation
drm/xe: Introduce xe_vma_op_prefetch_range struct for prefetch of
ranges
drm/xe: Make xe_svm_alloc_vram public
drm/xe/svm: Helper to add tile masks to svm ranges
drm/xe/svm: Make to_xe_range a public function
drm/xe/svm: Make xe_svm_range_* end/start/size public
drm/xe/vm: Update xe_vma_ops_incr_pt_update_ops to take an increment
value
drm/xe/vm: Add an identifier in xe_vma_ops for svm prefetch
drm/xe: Rename lookup_vma function to xe_find_vma_by_addr
drm/xe/svm: Refactor usage of drm_gpusvm* function in xe_svm
drm/xe/svm: Make xe_svm_range_needs_migrate_to_vram() public
drm/xe/svm: Add xe_svm_range_validate() and
xe_svm_range_migrate_to_smem()
drm/gpusvm: Introduce drm_gpusvm_find_vma_start() function
drm/xe/svm: Add xe_svm_find_vma_start() helper
drm/xe/svm: Implement prefetch support for SVM ranges
drm/xe/vm: Add debug prints for SVM range prefetch
drivers/gpu/drm/drm_gpusvm.c | 34 ++++
drivers/gpu/drm/xe/xe_gt_pagefault.c | 24 +--
drivers/gpu/drm/xe/xe_pt.c | 84 ++++++---
drivers/gpu/drm/xe/xe_svm.c | 204 ++++++++++++++++-----
drivers/gpu/drm/xe/xe_svm.h | 138 ++++++++++++++
drivers/gpu/drm/xe/xe_vm.c | 259 +++++++++++++++++++++++++--
drivers/gpu/drm/xe/xe_vm.h | 2 +
drivers/gpu/drm/xe/xe_vm_types.h | 15 ++
include/drm/drm_gpusvm.h | 5 +
9 files changed, 653 insertions(+), 112 deletions(-)
--
2.34.1
More information about the Intel-xe
mailing list