Re: [PATCH 02/10] drm/i915/execlists: Clear semaphore immediately upon ELSP promotion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 14/10/2019 23:05, Chris Wilson wrote:
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.

And significance of moving it earlier? More parallelization between GPU and CPU? Could drop a note to say so.

Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
---
  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);


Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>

Regards,

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




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux