Commit 22eba3be authored by Himal Prasad Ghimiray's avatar Himal Prasad Ghimiray
Browse files

drm/xe/svm: Avoid duplicate eviction on get_pages() failure



xe_svm_range_get_pages() already calls drm_gpusvm_range_evict()
internally when it fails with -EOPNOTSUPP. Remove the eviction
call in the caller to prevent duplicate handling.

Fixes: e0ff0d7c ("drm/xe/svm: Refactor usage of drm_gpusvm* function in xe_svm")
Cc: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://lore.kernel.org/r/20250526163907.1011529-1-himal.prasad.ghimiray@intel.com


Signed-off-by: default avatarHimal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
parent 39578fa4
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -914,11 +914,6 @@ int xe_svm_handle_pagefault(struct xe_vm *vm, struct xe_vma *vma,
	if (err == -EOPNOTSUPP || err == -EFAULT || err == -EPERM) {
		ctx.timeslice_ms <<= 1;	/* Double timeslice if we have to retry */
		if (migrate_try_count > 0 || !ctx.devmem_only) {
			if (err == -EOPNOTSUPP) {
				range_debug(range, "PAGE FAULT - EVICT PAGES");
				drm_gpusvm_range_evict(&vm->svm.gpusvm,
						       &range->base);
			}
			drm_dbg(&vm->xe->drm,
				"Get pages failed, falling back to retrying, asid=%u, gpusvm=%p, errno=%pe\n",
				vm->usm.asid, &vm->svm.gpusvm, ERR_PTR(err));