All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH] drm/xe: Fix unbind of unaccessed VMA (fault mode)
@ 2023-11-06 22:15 Brian Welty
  2023-11-06 22:18 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Brian Welty @ 2023-11-06 22:15 UTC (permalink / raw)
  To: intel-xe

In fault mode, page table binding is deferred until fault handler.
Thus vma->tile_present will be unset unless the VMA is accessed by GPU.

During a later unbind, the logic doesn't account for the fact that local
fence variable will be NULL in this case, leading to pass NULL into
dma_fence_add_callback() and causing few WARN_ONs to print to console.
The fix is already present in the code, just hoist the fence variable
computation to be done earlier.

Resolves warnings seen with igt@xe_exec_fault_mode@once-invalid-fault

Signed-off-by: Brian Welty <brian.welty@intel.com>
---
 drivers/gpu/drm/xe/xe_vm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index d26c90f0d702..d45f4f1d490f 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1738,14 +1738,14 @@ xe_vm_unbind_vma(struct xe_vma *vma, struct xe_exec_queue *q,
 		}
 	}
 
+	fence = cf ? &cf->base : !fence ?
+		xe_exec_queue_last_fence_get(wait_exec_queue, vm) : fence;
 	if (last_op) {
 		for (i = 0; i < num_syncs; i++)
-			xe_sync_entry_signal(&syncs[i], NULL,
-					     cf ? &cf->base : fence);
+			xe_sync_entry_signal(&syncs[i], NULL, fence);
 	}
 
-	return cf ? &cf->base : !fence ?
-		xe_exec_queue_last_fence_get(wait_exec_queue, vm) : fence;
+	return fence;
 
 err_fences:
 	if (fences) {
-- 
2.38.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-11-07 15:05 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-06 22:15 [Intel-xe] [PATCH] drm/xe: Fix unbind of unaccessed VMA (fault mode) Brian Welty
2023-11-06 22:18 ` [Intel-xe] ✓ CI.Patch_applied: success for " Patchwork
2023-11-06 22:18 ` [Intel-xe] ✓ CI.checkpatch: " Patchwork
2023-11-06 22:20 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-11-06 22:28 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-11-06 22:28 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-11-06 22:29 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-11-06 22:58 ` [Intel-xe] ✓ CI.BAT: " Patchwork
2023-11-07  8:03 ` [Intel-xe] [PATCH] " Matthew Brost

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.