drm/xe/migrate: Update cpu page-table updates

Don't wait for GPU to be able to update page-tables using CPU. Putting
ourselves to sleep may be more of a problem than using GPU for
page-table updates. Also allow the vm to be NULL since the migrate
kunit test uses NULL for vm.

Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
Thomas Hellström 2023-03-10 17:56:55 +01:00 committed by Rodrigo Vivi
parent 7c51050b3b
commit fc1cc68030

View File

@ -979,25 +979,13 @@ xe_migrate_update_pgtables_cpu(struct xe_migrate *m,
int err;
u32 i;
/* Wait on BO moves for 10 ms, then fall back to GPU job */
if (bo) {
long wait;
if (bo && !dma_resv_test_signaled(bo->ttm.base.resv,
DMA_RESV_USAGE_KERNEL))
return ERR_PTR(-ETIME);
wait = dma_resv_wait_timeout(bo->ttm.base.resv,
DMA_RESV_USAGE_KERNEL,
true, HZ / 100);
if (wait <= 0)
return ERR_PTR(-ETIME);
}
if (wait_vm) {
long wait;
wait = dma_resv_wait_timeout(&vm->resv,
DMA_RESV_USAGE_BOOKKEEP,
true, HZ / 100);
if (wait <= 0)
return ERR_PTR(-ETIME);
}
if (wait_vm && !dma_resv_test_signaled(&vm->resv,
DMA_RESV_USAGE_BOOKKEEP))
return ERR_PTR(-ETIME);
if (ops->pre_commit) {
err = ops->pre_commit(pt_update);
@ -1011,8 +999,10 @@ xe_migrate_update_pgtables_cpu(struct xe_migrate *m,
update->ofs, update->qwords, update);
}
trace_xe_vm_cpu_bind(vm);
xe_device_wmb(vm->xe);
if (vm) {
trace_xe_vm_cpu_bind(vm);
xe_device_wmb(vm->xe);
}
fence = dma_fence_get_stub();