All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/i915/execlists: Always clear ring_pause if we do not submit
@ 2019-06-24  9:20 Chris Wilson
  2019-06-24  9:39 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/execlists: Always clear ring_pause if we do not submit (rev2) Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Chris Wilson @ 2019-06-24  9:20 UTC (permalink / raw)
  To: intel-gfx

In the unlikely case (thank you CI!), we may find ourselves wanting to
issue a preemption but having no runnable requests left. In this case,
we set the semaphore before computing the preemption and so must unset
it before forgetting (or else we leave the machine busywaiting until the
next request comes along and so likely hang).

v2: Replace readback with only a wmb after asserting the semaphore

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 8017efb36f7b..a392186ca40b 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -240,7 +240,8 @@ ring_set_paused(const struct intel_engine_cs *engine, int state)
 	 * until the dword is false.
 	 */
 	engine->status_page.addr[I915_GEM_HWS_PREEMPT] = state;
-	wmb();
+	if (state)
+		wmb();
 }
 
 static inline struct i915_priolist *to_priolist(struct rb_node *rb)
@@ -1249,6 +1250,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
 		*port = execlists_schedule_in(last, port - execlists->pending);
 		memset(port + 1, 0, (last_port - port) * sizeof(*port));
 		execlists_submit_ports(engine);
+	} else {
+		ring_set_paused(engine, 0);
 	}
 }
 
-- 
2.20.1

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

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

end of thread, other threads:[~2019-06-24 12:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-24  9:20 [PATCH v2] drm/i915/execlists: Always clear ring_pause if we do not submit Chris Wilson
2019-06-24  9:39 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/execlists: Always clear ring_pause if we do not submit (rev2) Patchwork
2019-06-24 10:05 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-24 10:25 ` [PATCH v2] drm/i915/execlists: Always clear ring_pause if we do not submit Mika Kuoppala
2019-06-24 12:14 ` ✓ Fi.CI.IGT: success for drm/i915/execlists: Always clear ring_pause if we do not submit (rev2) 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.