[PATCH 1/1] drm/xe/svm: Avoid duplicate eviction on get_pages() failure

Matthew Brost matthew.brost at intel.com
Tue May 27 18:28:02 UTC 2025


On Mon, May 26, 2025 at 10:09:07PM +0530, Himal Prasad Ghimiray wrote:
> xe_svm_range_get_pages() already calls drm_gpusvm_range_evict()
> internally when it fails with -EOPNOTSUPP. Remove the redundant eviction
> call in the caller to prevent duplicate handling.
> 
> Fixes: e0ff0d7cf928 ("drm/xe/svm: Refactor usage of drm_gpusvm* function in xe_svm")
> Cc: Matthew Brost <matthew.brost at intel.com>

Reviewed-by: Matthew Brost <matthew.brost at intel.com>

> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_svm.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_svm.c b/drivers/gpu/drm/xe/xe_svm.c
> index 4432685936ed..871ac81bb04a 100644
> --- a/drivers/gpu/drm/xe/xe_svm.c
> +++ b/drivers/gpu/drm/xe/xe_svm.c
> @@ -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));
> -- 
> 2.34.1
> 


More information about the Intel-xe mailing list