From 085d8f468f4943cae4dbe881fef287dbd2e7f805 Mon Sep 17 00:00:00 2001 From: Matthew Brost Date: Fri, 25 Sep 2026 13:15:24 -0700 Subject: [PATCH] drm/xe: Enter ULLS for migration jobs upon page fault or SVM prefetch Call xe_migrate_ulls_enter upon page fault or SVM prefetch in an effort speed up these critical paths. Signed-off-by: Matthew Brost Reviewed-by: Shuicheng Lin Reviewed-by: Himal Prasad Ghimiray Reviewed-by: Maarten Lankhorst Link: https://patch.msgid.link/20260925201526.1355279-23-matthew.brost@intel.com --- drivers/gpu/drm/xe/xe_pagefault.c | 3 +++ drivers/gpu/drm/xe/xe_vm.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/xe/xe_pagefault.c b/drivers/gpu/drm/xe/xe_pagefault.c index 1286be7fdcf2..039ec8759f98 100644 --- a/drivers/gpu/drm/xe/xe_pagefault.c +++ b/drivers/gpu/drm/xe/xe_pagefault.c @@ -15,6 +15,7 @@ #include "xe_gt_stats.h" #include "xe_hw_engine.h" #include "xe_log.h" +#include "xe_migrate.h" #include "xe_pagefault.h" #include "xe_pagefault_types.h" #include "xe_pm.h" @@ -281,6 +282,8 @@ static int xe_pagefault_service(struct xe_pagefault *pf) if (IS_ERR(vm)) return PTR_ERR(vm); + xe_migrate_ulls_enter(gt_to_tile(gt)->migrate); + down_read(&vm->lock); if (xe_vm_is_closed(vm)) { diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c index e9d167d369b4..77cbffa625ab 100644 --- a/drivers/gpu/drm/xe/xe_vm.c +++ b/drivers/gpu/drm/xe/xe_vm.c @@ -2528,8 +2528,10 @@ vm_bind_ioctl_ops_create(struct xe_vm *vm, struct xe_vma_ops *vops, ctx.devmem_possible = IS_DGFX(vm->xe) && IS_ENABLED(CONFIG_DRM_XE_PAGEMAP); - for_each_tile(tile, vm->xe, id) + for_each_tile(tile, vm->xe, id) { + xe_migrate_ulls_enter(tile->migrate); tile_mask |= 0x1 << id; + } if (prefetch_region == DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC) { dpagemap = xe_vma_resolve_pagemap(vma,