drm/xe: Support device page faults on integrated platforms
Update xe_migrate_prepare_vm() to use the usm batch buffer even for servicing device page faults on integrated platforms. And as we have no VRAM on integrated platforms, device pagefault handler should not attempt to migrate into VRAM. LNL is first integrated platform to support device pagefaults. Signed-off-by: Brian Welty <brian.welty@intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
f4a0a113f1
commit
a682b6a42d
@ -106,7 +106,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;
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user