All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all
@ 2018-07-16 10:47 Chris Wilson
  2018-07-16 10:59 ` Chris Wilson
  2018-07-16 11:40 ` ✗ Fi.CI.BAT: failure for drm/i915/execlists: Always clear preempt status on cancelling all (rev6) Patchwork
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Wilson @ 2018-07-16 10:47 UTC (permalink / raw)
  To: intel-gfx

On reset/wedging, we cancel all pending replies from the HW and we also
want to cancel an outstanding preemption event. Since we use the same
function to cancel the pending replies for reset and for a preemption
event, we can simply clear the active tracking for all.

v2: Keep execlists_user_end() markup for wedging

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
Email woes, so resending so we Tvrtko can ask his questions again.

The reason why I didn't use multiple execlists_clear_active() was
because there are multiple bits, and will be extended in future, that
gcc doesn't optimise well because they are being tweaked inside asm
volatile (and so untouched by gcc).

Keeping the user_end() is for later, where it means more than just
clearing the bit but is acted on for disabling RPS and the like.
-Chris
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 2 --
 drivers/gpu/drm/i915/intel_lrc.c            | 5 ++---
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index cc444dc5f3ad..94d0674ea3c6 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -633,8 +633,6 @@ static void complete_preempt_context(struct intel_engine_cs *engine)
 
 	wait_for_guc_preempt_report(engine);
 	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 6fef9d130d55..1fe5481470c3 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -563,8 +563,6 @@ static void complete_preempt_context(struct intel_engine_execlists *execlists)
 	__unwind_incomplete_requests(container_of(execlists,
 						  struct intel_engine_cs,
 						  execlists));
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 static void execlists_dequeue(struct intel_engine_cs *engine)
@@ -792,7 +790,7 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists)
 		port++;
 	}
 
-	execlists_user_end(execlists);
+	execlists->active = 0;
 }
 
 static void reset_csb_pointers(struct intel_engine_execlists *execlists)
@@ -843,6 +841,7 @@ static void execlists_cancel_requests(struct intel_engine_cs *engine)
 
 	/* Cancel the requests on the HW and clear the ELSP tracker. */
 	execlists_cancel_port_requests(execlists);
+	execlists_user_end(execlists);
 
 	/* Mark all executing requests as skipped. */
 	list_for_each_entry(rq, &engine->timeline.requests, link) {
-- 
2.18.0

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

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

* Re: [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all
  2018-07-16 10:47 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
@ 2018-07-16 10:59 ` Chris Wilson
  2018-07-16 11:40 ` ✗ Fi.CI.BAT: failure for drm/i915/execlists: Always clear preempt status on cancelling all (rev6) Patchwork
  1 sibling, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2018-07-16 10:59 UTC (permalink / raw)
  To: intel-gfx

Quoting Chris Wilson (2018-07-16 11:47:27)
> On reset/wedging, we cancel all pending replies from the HW and we also
> want to cancel an outstanding preemption event. Since we use the same
> function to cancel the pending replies for reset and for a preemption
> event, we can simply clear the active tracking for all.
> 
> v2: Keep execlists_user_end() markup for wedging
> 

Fixes: 60a943245413 ("drm/i915/execlists: Drop clear_gtiir() on GPU reset")

> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.BAT: failure for drm/i915/execlists: Always clear preempt status on cancelling all (rev6)
  2018-07-16 10:47 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
  2018-07-16 10:59 ` Chris Wilson
@ 2018-07-16 11:40 ` Patchwork
  1 sibling, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-07-16 11:40 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/execlists: Always clear preempt status on cancelling all (rev6)
URL   : https://patchwork.freedesktop.org/series/46528/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4493 -> Patchwork_9669 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9669 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9669, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/46528/revisions/6/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9669:

  === IGT changes ===

    ==== Possible regressions ====

    igt@drv_selftest@live_hangcheck:
      fi-skl-6700hq:      NOTRUN -> DMESG-FAIL

    igt@drv_selftest@live_workarounds:
      {fi-cfl-8109u}:     PASS -> DMESG-FAIL

    
== Known issues ==

  Here are the changes found in Patchwork_9669 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         PASS -> INCOMPLETE (fdo#103927)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      fi-bdw-5557u:       DMESG-FAIL (fdo#106560) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560


== Participating hosts (44 -> 41) ==

  Additional (1): fi-skl-6700hq 
  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4493 -> Patchwork_9669

  CI_DRM_4493: c69b4c1274cccaa270c1e4daa68228724c80603a @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4558: d8e97e1710b27a3931a1c53d1dd88c0e709c085b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9669: 2157c75a19fac7d5e632aacd5046190793ddb3ea @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2157c75a19fa drm/i915/execlists: Always clear preempt status on cancelling all

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9669/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all
  2018-07-14  9:52 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
  2018-07-14 10:00 ` Chris Wilson
@ 2018-07-14 10:11 ` Chris Wilson
  1 sibling, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2018-07-14 10:11 UTC (permalink / raw)
  To: intel-gfx

On reset/wedging, we cancel all pending replies from the HW and we also
want to cancel an outstanding preemption event. Since we use the same
function to cancel the pending replies for reset and for a preemption
event, we can simply clear the active tracking for all.

v2: Keep execlists_user_end() markup for wedging

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 2 --
 drivers/gpu/drm/i915/intel_lrc.c            | 5 ++---
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index cc444dc5f3ad..94d0674ea3c6 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -633,8 +633,6 @@ static void complete_preempt_context(struct intel_engine_cs *engine)
 
 	wait_for_guc_preempt_report(engine);
 	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 8fd8de71c2b5..33b65608600c 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -563,8 +563,6 @@ static void complete_preempt_context(struct intel_engine_execlists *execlists)
 	__unwind_incomplete_requests(container_of(execlists,
 						  struct intel_engine_cs,
 						  execlists));
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 static void execlists_dequeue(struct intel_engine_cs *engine)
@@ -792,7 +790,7 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists)
 		port++;
 	}
 
-	execlists_user_end(execlists);
+	execlists->active = 0;
 }
 
 static void reset_csb_pointers(struct intel_engine_execlists *execlists)
@@ -838,6 +836,7 @@ static void execlists_cancel_requests(struct intel_engine_cs *engine)
 
 	/* Cancel the requests on the HW and clear the ELSP tracker. */
 	execlists_cancel_port_requests(execlists);
+	execlists_user_end(execlists);
 
 	/* Mark all executing requests as skipped. */
 	list_for_each_entry(rq, &engine->timeline.requests, link) {
-- 
2.18.0

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

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

* [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all
  2018-07-14  9:52 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
@ 2018-07-14 10:00 ` Chris Wilson
  2018-07-14 10:11 ` Chris Wilson
  1 sibling, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2018-07-14 10:00 UTC (permalink / raw)
  To: intel-gfx

On reset/wedging, we cancel all pending replies from the HW and we also
want to cancel an outstanding preemption event. Since we use the same
function to cancel the pending replies for reset and for a preemption
event, we can simply clear the active tracking for all.

v2: Keep execlists_user_end() markup for wedging

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 2 --
 drivers/gpu/drm/i915/intel_lrc.c            | 6 ++----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index cc444dc5f3ad..94d0674ea3c6 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -633,8 +633,6 @@ static void complete_preempt_context(struct intel_engine_cs *engine)
 
 	wait_for_guc_preempt_report(engine);
 	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 05567e30efe0..33b65608600c 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -563,8 +563,6 @@ static void complete_preempt_context(struct intel_engine_execlists *execlists)
 	__unwind_incomplete_requests(container_of(execlists,
 						  struct intel_engine_cs,
 						  execlists));
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 static void execlists_dequeue(struct intel_engine_cs *engine)
@@ -792,8 +790,7 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists)
 		port++;
 	}
 
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_USER);
-	execlists_user_end(execlists);
+	execlists->active = 0;
 }
 
 static void reset_csb_pointers(struct intel_engine_execlists *execlists)
@@ -839,6 +836,7 @@ static void execlists_cancel_requests(struct intel_engine_cs *engine)
 
 	/* Cancel the requests on the HW and clear the ELSP tracker. */
 	execlists_cancel_port_requests(execlists);
+	execlists_user_end(execlists);
 
 	/* Mark all executing requests as skipped. */
 	list_for_each_entry(rq, &engine->timeline.requests, link) {
-- 
2.18.0

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

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

* [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all
@ 2018-07-14  9:52 Chris Wilson
  2018-07-14 10:00 ` Chris Wilson
  2018-07-14 10:11 ` Chris Wilson
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Wilson @ 2018-07-14  9:52 UTC (permalink / raw)
  To: intel-gfx

On reset/wedging, we cancel all pending replies from the HW and we also
want to cancel an outstanding preemption event. Since we use the same
function to cancel the pending replies for reset and for a preemption
event, we can simply clear the active tracking for all.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/intel_guc_submission.c | 2 --
 drivers/gpu/drm/i915/intel_lrc.c            | 5 +----
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index cc444dc5f3ad..94d0674ea3c6 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -633,8 +633,6 @@ static void complete_preempt_context(struct intel_engine_cs *engine)
 
 	wait_for_guc_preempt_report(engine);
 	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 05567e30efe0..be2c19802b45 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -563,8 +563,6 @@ static void complete_preempt_context(struct intel_engine_execlists *execlists)
 	__unwind_incomplete_requests(container_of(execlists,
 						  struct intel_engine_cs,
 						  execlists));
-
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_PREEMPT);
 }
 
 static void execlists_dequeue(struct intel_engine_cs *engine)
@@ -792,8 +790,7 @@ execlists_cancel_port_requests(struct intel_engine_execlists * const execlists)
 		port++;
 	}
 
-	execlists_clear_active(execlists, EXECLISTS_ACTIVE_USER);
-	execlists_user_end(execlists);
+	execlists->active = 0;
 }
 
 static void reset_csb_pointers(struct intel_engine_execlists *execlists)
-- 
2.18.0

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

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

end of thread, other threads:[~2018-07-16 11:40 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-16 10:47 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
2018-07-16 10:59 ` Chris Wilson
2018-07-16 11:40 ` ✗ Fi.CI.BAT: failure for drm/i915/execlists: Always clear preempt status on cancelling all (rev6) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2018-07-14  9:52 [PATCH] drm/i915/execlists: Always clear preempt status on cancelling all Chris Wilson
2018-07-14 10:00 ` Chris Wilson
2018-07-14 10:11 ` Chris Wilson

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.