Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe: flush gtt before signalling user fence on media engines
@ 2024-05-21 15:23 Andrzej Hajda
  2024-05-21 15:59 ` Matthew Brost
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Andrzej Hajda @ 2024-05-21 15:23 UTC (permalink / raw)
  To: intel-xe
  Cc: Lucas De Marchi, Thomas Hellström, Maarten Lankhorst,
	Matthew Auld, Andrzej Hajda

Tests show that user fence signalling requires kind of write barrier,
otherwise not all writes performed by the workload will be available
to userspace.

Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1488
Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
---
 drivers/gpu/drm/xe/xe_ring_ops.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_ring_ops.c b/drivers/gpu/drm/xe/xe_ring_ops.c
index a3ca718456f6..eb36901f96ff 100644
--- a/drivers/gpu/drm/xe/xe_ring_ops.c
+++ b/drivers/gpu/drm/xe/xe_ring_ops.c
@@ -293,13 +293,13 @@ static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc,
 
 	i = emit_bb_start(batch_addr, ppgtt_flag, dw, i);
 
+	i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
+
 	if (job->user_fence.used)
 		i = emit_store_imm_ppgtt_posted(job->user_fence.addr,
 						job->user_fence.value,
 						dw, i);
 
-	i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i);
-
 	i = emit_user_interrupt(dw, i);
 
 	xe_gt_assert(gt, i <= MAX_JOB_SIZE_DW);

---
base-commit: 188ced1e0ff892f0948f20480e2e0122380ae46d
change-id: 20240521-xu_flush_vcs_before_ufence-a7b45d94cf33

Best regards,
-- 
Andrzej Hajda <andrzej.hajda@intel.com>


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

end of thread, other threads:[~2024-05-22  0:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-21 15:23 [PATCH] drm/xe: flush gtt before signalling user fence on media engines Andrzej Hajda
2024-05-21 15:59 ` Matthew Brost
2024-05-21 18:05 ` ✓ CI.Patch_applied: success for " Patchwork
2024-05-21 18:05 ` ✓ CI.checkpatch: " Patchwork
2024-05-21 18:06 ` ✓ CI.KUnit: " Patchwork
2024-05-21 18:19 ` ✓ CI.Build: " Patchwork
2024-05-21 18:23 ` ✓ CI.Hooks: " Patchwork
2024-05-21 18:25 ` ✓ CI.checksparse: " Patchwork
2024-05-21 18:55 ` ✗ CI.BAT: failure " Patchwork
2024-05-22  0:58 ` ✗ CI.FULL: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox