[Intel-xe] [PATCH 2/6] drm/xe/migrate: Update cpu page-table updates
Thomas Hellström
thomas.hellstrom at linux.intel.com
Mon Mar 13 20:45:15 UTC 2023
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 at linux.intel.com>
---
drivers/gpu/drm/xe/xe_migrate.c | 30 ++++++++++--------------------
1 file changed, 10 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_migrate.c b/drivers/gpu/drm/xe/xe_migrate.c
index c0523d8fe944..39ed63829224 100644
--- a/drivers/gpu/drm/xe/xe_migrate.c
+++ b/drivers/gpu/drm/xe/xe_migrate.c
@@ -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();
--
2.39.2
More information about the Intel-xe
mailing list