All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 1/5] drm/i915/execlist: Mark up racy read of execlists->pending[0]
@ 2020-01-28 20:43 Chris Wilson
  2020-01-28 20:43 ` [Intel-gfx] [PATCH 2/5] drm/i915/gt: Hook up CS_MASTER_ERROR_INTERRUPT Chris Wilson
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Chris Wilson @ 2020-01-28 20:43 UTC (permalink / raw)
  To: intel-gfx

We write to execlists->pending[0] in process_csb() to acknowledge the
completion of the ESLP update, outside of the main spinlock. When we
check the current status of the previous submission in
__execlists_submission_tasklet() we should therefore use READ_ONCE() to
reflect and document the unsynchronized read.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index cf6c43bd540a..058484958e87 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -2347,7 +2347,7 @@ static void process_csb(struct intel_engine_cs *engine)
 static void __execlists_submission_tasklet(struct intel_engine_cs *const engine)
 {
 	lockdep_assert_held(&engine->active.lock);
-	if (!engine->execlists.pending[0]) {
+	if (!READ_ONCE(engine->execlists.pending[0])) {
 		rcu_read_lock(); /* protect peeking at execlists->active */
 		execlists_dequeue(engine);
 		rcu_read_unlock();
-- 
2.25.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2020-01-31  2:30 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-28 20:43 [Intel-gfx] [PATCH 1/5] drm/i915/execlist: Mark up racy read of execlists->pending[0] Chris Wilson
2020-01-28 20:43 ` [Intel-gfx] [PATCH 2/5] drm/i915/gt: Hook up CS_MASTER_ERROR_INTERRUPT Chris Wilson
2020-01-28 20:43 ` [Intel-gfx] [PATCH 3/5] drm/i915/gt: Yield the timeslice if caught waiting on a user semaphore Chris Wilson
2020-01-28 20:43 ` [Intel-gfx] [PATCH 4/5] drm/i915/gt: Rename lrc.c to execlists_submission.c Chris Wilson
2020-01-28 21:37   ` Daniele Ceraolo Spurio
2020-01-28 20:43 ` [Intel-gfx] [PATCH 5/5] drm/i915/gt: Split logical ring context manipulation into intel_lrc.c Chris Wilson
2020-01-28 21:55   ` Daniele Ceraolo Spurio
2020-01-28 22:08     ` Chris Wilson
2020-01-28 22:44       ` Daniele Ceraolo Spurio
2020-01-28 23:50   ` Daniele Ceraolo Spurio
2020-01-29  2:10 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/i915/execlist: Mark up racy read of execlists->pending[0] Patchwork
2020-01-29  2:29 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-01-29 13:11 ` [Intel-gfx] [PATCH 1/5] " Mika Kuoppala
2020-01-31  2:30 ` [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] " Patchwork

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.