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 <matthew.brost@intel.com>
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Reviewed-by: Maarten Lankhorst <dev@lankhorst.se>
Link: https://patch.msgid.link/20260925201526.1355279-23-matthew.brost@intel.com
This commit is contained in:
Matthew Brost 2026-09-25 13:15:24 -07:00
parent 40c756bdbb
commit 085d8f468f
2 changed files with 6 additions and 1 deletions

View File

@ -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)) {

View File

@ -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,