[Intel-xe] [PATCH 1/2] drm/xe/xe2: Update LNL platform to support device page faults
Brian Welty
brian.welty at intel.com
Tue Nov 28 21:36:33 UTC 2023
LNL is first integrated platform to support device pagefaults.
As we have no VRAM, changes needed to support LNL are:
- device pagefault handler should not attempt to migrate into VRAM
- update xe_migrate_prepare_vm() to use the usm batch buffer even
for servicing device page faults on integrated platforms
Signed-off-by: Brian Welty <brian.welty at intel.com>
---
drivers/gpu/drm/xe/xe_gt_pagefault.c | 2 +-
drivers/gpu/drm/xe/xe_migrate.c | 7 +++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c b/drivers/gpu/drm/xe/xe_gt_pagefault.c
index 03c1ab0ab0ca..959ea50c04db 100644
--- a/drivers/gpu/drm/xe/xe_gt_pagefault.c
+++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c
@@ -105,7 +105,7 @@ static int xe_pf_begin(struct drm_exec *exec, struct xe_vma *vma,
if (err)
return err;
- if (atomic) {
+ if (atomic && IS_DGFX(vm->xe)) {
if (xe_vma_is_userptr(vma)) {
err = -EACCES;
return err;
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index 80a130beca61..e8b567708ac0 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -215,10 +215,13 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile, struct xe_migrate *m,
}
if (!IS_DGFX(xe)) {
- xe_tile_assert(tile, !xe->info.supports_usm);
-
/* Write out batch too */
m->batch_base_ofs = NUM_PT_SLOTS * XE_PAGE_SIZE;
+ if (xe->info.supports_usm) {
+ batch = tile->primary_gt->usm.bb_pool->bo;
+ m->usm_batch_base_ofs = m->batch_base_ofs;
+ }
+
for (i = 0; i < batch->size;
i += vm->flags & XE_VM_FLAG_64K ? XE_64K_PAGE_SIZE :
XE_PAGE_SIZE) {
--
2.38.0
More information about the Intel-xe
mailing list