There is no significance to our delay before clearing the semaphore the
engine is waiting on, so release it as soon as we acknowledge the CS
update following our preemption request.

Signed-off-by: Chris Wilson <[email protected]>
---
 drivers/gpu/drm/i915/gt/intel_lrc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c 
b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 484efe3b4273..21635db8d76c 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -1910,6 +1910,9 @@ static void process_csb(struct intel_engine_cs *engine)
                else
                        promote = gen8_csb_parse(execlists, buf + 2 * head);
                if (promote) {
+                       if (!inject_preempt_hang(execlists))
+                               ring_set_paused(engine, 0);
+
                        /* cancel old inflight, prepare for switch */
                        trace_ports(execlists, "preempted", execlists->active);
                        while (*execlists->active)
@@ -1926,9 +1929,6 @@ static void process_csb(struct intel_engine_cs *engine)
                        if (enable_timeslice(execlists))
                                mod_timer(&execlists->timer, jiffies + 1);
 
-                       if (!inject_preempt_hang(execlists))
-                               ring_set_paused(engine, 0);
-
                        WRITE_ONCE(execlists->pending[0], NULL);
                } else {
                        GEM_BUG_ON(!*execlists->active);
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to