All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking
@ 2019-05-02 15:00 Chris Wilson
  2019-05-02 15:00 ` [PATCH 2/2] drm/i915: Leave engine parking to the engines Chris Wilson
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Chris Wilson @ 2019-05-02 15:00 UTC (permalink / raw)
  To: intel-gfx

Tidy up the cleanup sequence by always ensure that the tasklet is
flushed on parking (before we cleanup). The parking provides a
convenient point to ensure that the backend is truly idle.

v2: Do the full check for idleness before parking, to be sure we flush
any residual interrupt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c   |  2 ++
 drivers/gpu/drm/i915/gt/intel_engine_pm.c   | 27 +++++++++++++++++----
 drivers/gpu/drm/i915/gt/intel_engine_pm.h   |  2 ++
 drivers/gpu/drm/i915/gt/intel_lrc.c         | 16 ++++++------
 drivers/gpu/drm/i915/intel_guc_submission.c |  2 ++
 5 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 763f34af55eb..797d8f0d0a6e 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -1097,6 +1097,8 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
 	if (READ_ONCE(engine->execlists.active)) {
 		struct tasklet_struct *t = &engine->execlists.tasklet;
 
+		synchronize_irq(engine->i915->drm.irq);
+
 		local_bh_disable();
 		if (tasklet_trylock(t)) {
 			/* Must wait for any GPU reset in progress. */
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
index 3976aea3c1d1..ccf034764741 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -10,7 +10,7 @@
 #include "intel_engine_pm.h"
 #include "intel_gt_pm.h"
 
-static int intel_engine_unpark(struct intel_wakeref *wf)
+static int __engine_unpark(struct intel_wakeref *wf)
 {
 	struct intel_engine_cs *engine =
 		container_of(wf, typeof(*engine), wakeref);
@@ -37,7 +37,24 @@ static int intel_engine_unpark(struct intel_wakeref *wf)
 
 void intel_engine_pm_get(struct intel_engine_cs *engine)
 {
-	intel_wakeref_get(engine->i915, &engine->wakeref, intel_engine_unpark);
+	intel_wakeref_get(engine->i915, &engine->wakeref, __engine_unpark);
+}
+
+void intel_engine_park(struct intel_engine_cs *engine)
+{
+	/*
+	 * We are committed now to parking this engine, make sure there
+	 * will be no more interrupts arriving later and the engine
+	 * is truly idle.
+	 */
+	if (wait_for(intel_engine_is_idle(engine), 10)) {
+		struct drm_printer p = drm_debug_printer(__func__);
+
+		dev_err(engine->i915->drm.dev,
+			"%s is not idle before parking\n",
+			engine->name);
+		intel_engine_dump(engine, &p, NULL);
+	}
 }
 
 static bool switch_to_kernel_context(struct intel_engine_cs *engine)
@@ -56,7 +73,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 	 * Note, we do this without taking the timeline->mutex. We cannot
 	 * as we may be called while retiring the kernel context and so
 	 * already underneath the timeline->mutex. Instead we rely on the
-	 * exclusive property of the intel_engine_park that prevents anyone
+	 * exclusive property of the __engine_park that prevents anyone
 	 * else from creating a request on this engine. This also requires
 	 * that the ring is empty and we avoid any waits while constructing
 	 * the context, as they assume protection by the timeline->mutex.
@@ -76,7 +93,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 	return false;
 }
 
-static int intel_engine_park(struct intel_wakeref *wf)
+static int __engine_park(struct intel_wakeref *wf)
 {
 	struct intel_engine_cs *engine =
 		container_of(wf, typeof(*engine), wakeref);
@@ -114,7 +131,7 @@ static int intel_engine_park(struct intel_wakeref *wf)
 
 void intel_engine_pm_put(struct intel_engine_cs *engine)
 {
-	intel_wakeref_put(engine->i915, &engine->wakeref, intel_engine_park);
+	intel_wakeref_put(engine->i915, &engine->wakeref, __engine_park);
 }
 
 void intel_engine_init__pm(struct intel_engine_cs *engine)
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.h b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
index 143ac90ba117..b326cd993d60 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
@@ -13,6 +13,8 @@ struct intel_engine_cs;
 void intel_engine_pm_get(struct intel_engine_cs *engine);
 void intel_engine_pm_put(struct intel_engine_cs *engine);
 
+void intel_engine_park(struct intel_engine_cs *engine);
+
 void intel_engine_init__pm(struct intel_engine_cs *engine);
 
 int intel_engines_resume(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 22cc895aca1b..c4684bdfae07 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -136,6 +136,7 @@
 #include "i915_drv.h"
 #include "i915_gem_render_state.h"
 #include "i915_vgpu.h"
+#include "intel_engine_pm.h"
 #include "intel_lrc_reg.h"
 #include "intel_mocs.h"
 #include "intel_reset.h"
@@ -2333,6 +2334,11 @@ static int gen8_init_rcs_context(struct i915_request *rq)
 	return i915_gem_render_state_emit(rq);
 }
 
+static void execlists_park(struct intel_engine_cs *engine)
+{
+	intel_engine_park(engine);
+}
+
 void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 {
 	engine->submit_request = execlists_submit_request;
@@ -2344,7 +2350,7 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 	engine->reset.reset = execlists_reset;
 	engine->reset.finish = execlists_reset_finish;
 
-	engine->park = NULL;
+	engine->park = execlists_park;
 	engine->unpark = NULL;
 
 	engine->flags |= I915_ENGINE_SUPPORTS_STATS;
@@ -2357,14 +2363,6 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 
 static void execlists_destroy(struct intel_engine_cs *engine)
 {
-	/*
-	 * Tasklet cannot be active at this point due intel_mark_active/idle
-	 * so this is just for documentation.
-	 */
-	if (GEM_DEBUG_WARN_ON(test_bit(TASKLET_STATE_SCHED,
-				       &engine->execlists.tasklet.state)))
-		tasklet_kill(&engine->execlists.tasklet);
-
 	intel_engine_cleanup_common(engine);
 	lrc_destroy_wa_ctx(engine);
 	kfree(engine);
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index 4c814344809c..57ed1dd4ae41 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -25,6 +25,7 @@
 #include <linux/circ_buf.h>
 #include <trace/events/dma_fence.h>
 
+#include "gt/intel_engine_pm.h"
 #include "gt/intel_lrc_reg.h"
 
 #include "intel_guc_submission.h"
@@ -1363,6 +1364,7 @@ static void guc_interrupts_release(struct drm_i915_private *dev_priv)
 
 static void guc_submission_park(struct intel_engine_cs *engine)
 {
+	intel_engine_park(engine);
 	intel_engine_unpin_breadcrumbs_irq(engine);
 	engine->flags &= ~I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
 }
-- 
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] 8+ messages in thread

* [PATCH 2/2] drm/i915: Leave engine parking to the engines
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
@ 2019-05-02 15:00 ` Chris Wilson
  2019-05-02 18:23 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking Patchwork
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Chris Wilson @ 2019-05-02 15:00 UTC (permalink / raw)
  To: intel-gfx

Drop the check in GEM parking that the engines were already parked. The
intention here was that before we dropped the GT wakeref, we were sure
that no more interrupts could be raised -- however, we have already
dropped the wakeref by this point and the warning is no longer valid.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/i915_gem_pm.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_pm.c b/drivers/gpu/drm/i915/i915_gem_pm.c
index 3b6e8d5be8e1..49b0ce594f20 100644
--- a/drivers/gpu/drm/i915/i915_gem_pm.c
+++ b/drivers/gpu/drm/i915/i915_gem_pm.c
@@ -17,24 +17,8 @@ static void i915_gem_park(struct drm_i915_private *i915)
 
 	lockdep_assert_held(&i915->drm.struct_mutex);
 
-	for_each_engine(engine, i915, id) {
-		/*
-		 * We are committed now to parking the engines, make sure there
-		 * will be no more interrupts arriving later and the engines
-		 * are truly idle.
-		 */
-		if (wait_for(intel_engine_is_idle(engine), 10)) {
-			struct drm_printer p = drm_debug_printer(__func__);
-
-			dev_err(i915->drm.dev,
-				"%s is not idle before parking\n",
-				engine->name);
-			intel_engine_dump(engine, &p, NULL);
-		}
-		tasklet_kill(&engine->execlists.tasklet);
-
+	for_each_engine(engine, i915, id)
 		i915_gem_batch_pool_fini(&engine->batch_pool);
-	}
 
 	i915_timelines_park(i915);
 	i915_vma_parked(i915);
-- 
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] 8+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
  2019-05-02 15:00 ` [PATCH 2/2] drm/i915: Leave engine parking to the engines Chris Wilson
@ 2019-05-02 18:23 ` Patchwork
  2019-05-02 23:31 ` ✗ Fi.CI.IGT: failure " Patchwork
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-05-02 18:23 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking
URL   : https://patchwork.freedesktop.org/series/60216/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6029 -> Patchwork_12946
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60216/revisions/1/mbox/

Known issues
------------

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

### IGT changes ###

#### Possible fixes ####

  * igt@i915_selftest@live_hangcheck:
    - fi-skl-iommu:       [INCOMPLETE][1] ([fdo#108602] / [fdo#108744] / [fdo#110581]) -> [PASS][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html

  
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#110581]: https://bugs.freedesktop.org/show_bug.cgi?id=110581


Participating hosts (54 -> 41)
------------------------------

  Missing    (13): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-skl-guc fi-byt-squawks fi-bsw-cyan fi-kbl-guc fi-ctg-p8600 fi-gdg-551 fi-pnv-d510 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * Linux: CI_DRM_6029 -> Patchwork_12946

  CI_DRM_6029: 0548213ff6d52d4638778a95a4b3a7900e683ac3 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4972: f052e49a43cc9704ea5f240df15dd9d3dfed68ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12946: 2b2c8ab61486a4c91e69ffc208cbdac21e20eff0 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2b2c8ab61486 drm/i915: Leave engine parking to the engines
af6c2933c230 drm/i915/execlists: Flush the tasklet on parking

== Logs ==

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

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

* ✗ Fi.CI.IGT: failure for series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
  2019-05-02 15:00 ` [PATCH 2/2] drm/i915: Leave engine parking to the engines Chris Wilson
  2019-05-02 18:23 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking Patchwork
@ 2019-05-02 23:31 ` Patchwork
  2019-05-03  8:09 ` [PATCH] " Chris Wilson
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-05-02 23:31 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking
URL   : https://patchwork.freedesktop.org/series/60216/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6029_full -> Patchwork_12946_full
====================================================

Summary
-------

  **FAILURE**

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

  

Possible new issues
-------------------

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_capture@capture-vebox:
    - shard-kbl:          [PASS][1] -> [DMESG-WARN][2] +23 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-kbl7/igt@gem_exec_capture@capture-vebox.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl5/igt@gem_exec_capture@capture-vebox.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-skl:          [PASS][3] -> [DMESG-WARN][4] +19 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-skl6/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl10/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@kms_flip@flip-vs-modeset-vs-hang:
    - shard-apl:          [PASS][5] -> [DMESG-WARN][6] +17 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl5/igt@kms_flip@flip-vs-modeset-vs-hang.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl3/igt@kms_flip@flip-vs-modeset-vs-hang.html

  * igt@kms_vblank@pipe-a-wait-idle-hang:
    - shard-skl:          NOTRUN -> [DMESG-WARN][7]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl9/igt@kms_vblank@pipe-a-wait-idle-hang.html

  * igt@prime_busy@wait-hang-bsd:
    - shard-iclb:         [PASS][8] -> [DMESG-WARN][9] +19 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb1/igt@prime_busy@wait-hang-bsd.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb7/igt@prime_busy@wait-hang-bsd.html
    - shard-glk:          [PASS][10] -> [DMESG-WARN][11] +13 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-glk7/igt@prime_busy@wait-hang-bsd.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-glk4/igt@prime_busy@wait-hang-bsd.html

  * igt@runner@aborted:
    - shard-kbl:          NOTRUN -> ([FAIL][12], [FAIL][13], [FAIL][14], [FAIL][15], [FAIL][16], [FAIL][17], [FAIL][18], [FAIL][19], [FAIL][20], [FAIL][21], [FAIL][22], [FAIL][23], [FAIL][24], [FAIL][25], [FAIL][26], [FAIL][27], [FAIL][28], [FAIL][29], [FAIL][30], [FAIL][31], [FAIL][32], [FAIL][33], [FAIL][34], [FAIL][35], [FAIL][36], [FAIL][37], [FAIL][38], [FAIL][39]) ([fdo#103841])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl4/igt@runner@aborted.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl3/igt@runner@aborted.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl4/igt@runner@aborted.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl4/igt@runner@aborted.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl7/igt@runner@aborted.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl4/igt@runner@aborted.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl7/igt@runner@aborted.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl5/igt@runner@aborted.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl3/igt@runner@aborted.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl5/igt@runner@aborted.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl7/igt@runner@aborted.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl5/igt@runner@aborted.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@runner@aborted.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl3/igt@runner@aborted.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl3/igt@runner@aborted.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl1/igt@runner@aborted.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl2/igt@runner@aborted.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl1/igt@runner@aborted.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl1/igt@runner@aborted.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl2/igt@runner@aborted.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl2/igt@runner@aborted.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl3/igt@runner@aborted.html
    - shard-iclb:         NOTRUN -> ([FAIL][40], [FAIL][41], [FAIL][42], [FAIL][43], [FAIL][44], [FAIL][45], [FAIL][46], [FAIL][47], [FAIL][48], [FAIL][49], [FAIL][50], [FAIL][51], [FAIL][52], [FAIL][53], [FAIL][54], [FAIL][55], [FAIL][56], [FAIL][57], [FAIL][58], [FAIL][59], [FAIL][60], [FAIL][61]) ([fdo#110275])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb7/igt@runner@aborted.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb7/igt@runner@aborted.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb8/igt@runner@aborted.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb5/igt@runner@aborted.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb8/igt@runner@aborted.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb2/igt@runner@aborted.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb8/igt@runner@aborted.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb6/igt@runner@aborted.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb3/igt@runner@aborted.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb8/igt@runner@aborted.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb1/igt@runner@aborted.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb5/igt@runner@aborted.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb7/igt@runner@aborted.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb2/igt@runner@aborted.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb1/igt@runner@aborted.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb8/igt@runner@aborted.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@runner@aborted.html
    - shard-apl:          NOTRUN -> ([FAIL][62], [FAIL][63], [FAIL][64], [FAIL][65], [FAIL][66], [FAIL][67], [FAIL][68], [FAIL][69], [FAIL][70], [FAIL][71], [FAIL][72], [FAIL][73], [FAIL][74], [FAIL][75], [FAIL][76], [FAIL][77], [FAIL][78], [FAIL][79], [FAIL][80], [FAIL][81], [FAIL][82])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl5/igt@runner@aborted.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl8/igt@runner@aborted.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl8/igt@runner@aborted.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl8/igt@runner@aborted.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl1/igt@runner@aborted.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl7/igt@runner@aborted.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl2/igt@runner@aborted.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl2/igt@runner@aborted.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl6/igt@runner@aborted.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl1/igt@runner@aborted.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl3/igt@runner@aborted.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl6/igt@runner@aborted.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl8/igt@runner@aborted.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl3/igt@runner@aborted.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl3/igt@runner@aborted.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl3/igt@runner@aborted.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl1/igt@runner@aborted.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl5/igt@runner@aborted.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl5/igt@runner@aborted.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl4/igt@runner@aborted.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl4/igt@runner@aborted.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@gem_exec_schedule@semaphore-resolve}:
    - shard-glk:          [FAIL][83] ([fdo#110519]) -> [DMESG-FAIL][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-glk9/igt@gem_exec_schedule@semaphore-resolve.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-glk1/igt@gem_exec_schedule@semaphore-resolve.html
    - shard-skl:          [FAIL][85] ([fdo#110519]) -> [DMESG-FAIL][86]
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-skl2/igt@gem_exec_schedule@semaphore-resolve.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl8/igt@gem_exec_schedule@semaphore-resolve.html
    - shard-kbl:          [FAIL][87] ([fdo#110519]) -> [DMESG-FAIL][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-kbl6/igt@gem_exec_schedule@semaphore-resolve.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl4/igt@gem_exec_schedule@semaphore-resolve.html
    - shard-iclb:         [FAIL][89] ([fdo#110519]) -> [DMESG-FAIL][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb3/igt@gem_exec_schedule@semaphore-resolve.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@gem_exec_schedule@semaphore-resolve.html
    - shard-apl:          [FAIL][91] ([fdo#110519]) -> [DMESG-FAIL][92]
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl1/igt@gem_exec_schedule@semaphore-resolve.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl1/igt@gem_exec_schedule@semaphore-resolve.html

  
Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_busy@extended-modeset-hang-newfb-render-c:
    - shard-skl:          [PASS][93] -> [DMESG-WARN][94] ([fdo#110222]) +2 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-skl7/igt@kms_busy@extended-modeset-hang-newfb-render-c.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl2/igt@kms_busy@extended-modeset-hang-newfb-render-c.html

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
    - shard-iclb:         [PASS][95] -> [DMESG-WARN][96] ([fdo#110222])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb1/igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb4/igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c.html

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a:
    - shard-kbl:          [PASS][97] -> [DMESG-WARN][98] ([fdo#110222]) +2 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-kbl6/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-kbl6/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a.html
    - shard-glk:          [PASS][99] -> [DMESG-WARN][100] ([fdo#110222])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-glk5/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-glk4/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-a.html

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c:
    - shard-apl:          [PASS][101] -> [DMESG-WARN][102] ([fdo#110222]) +1 similar issue
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl7/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl8/igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-c.html

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          [PASS][103] -> [DMESG-WARN][104] ([fdo#108566]) +2 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl3/igt@kms_cursor_crc@cursor-128x128-suspend.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl7/igt@kms_cursor_crc@cursor-128x128-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-skl:          [PASS][105] -> [FAIL][106] ([fdo#105363])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-skl7/igt@kms_flip@flip-vs-expired-vblank.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl2/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff:
    - shard-apl:          [PASS][107] -> [DMESG-WARN][108] ([fdo#103558] / [fdo#105602]) +5 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render:
    - shard-iclb:         [PASS][109] -> [FAIL][110] ([fdo#103167]) +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-glk:          [PASS][111] -> [SKIP][112] ([fdo#109271]) +1 similar issue
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-glk9/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-glk3/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-skl:          [PASS][113] -> [FAIL][114] ([fdo#108145])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-skl10/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-skl7/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [PASS][115] -> [SKIP][116] ([fdo#109441]) +1 similar issue
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb1/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_sysfs_edid_timing:
    - shard-iclb:         [PASS][117] -> [FAIL][118] ([fdo#100047])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb4/igt@kms_sysfs_edid_timing.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb3/igt@kms_sysfs_edid_timing.html

  * igt@kms_vblank@pipe-b-query-forked-busy-hang:
    - shard-apl:          [PASS][119] -> [INCOMPLETE][120] ([fdo#103927] / [fdo#110581])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl1/igt@kms_vblank@pipe-b-query-forked-busy-hang.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl1/igt@kms_vblank@pipe-b-query-forked-busy-hang.html

  
#### Possible fixes ####

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [DMESG-WARN][121] ([fdo#108566]) -> [PASS][122] +2 similar issues
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-apl6/igt@i915_suspend@sysfs-reader.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-apl4/igt@i915_suspend@sysfs-reader.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][123] ([fdo#109349]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb4/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite:
    - shard-iclb:         [FAIL][125] ([fdo#103167]) -> [PASS][126] +2 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-pwrite.html

  * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
    - shard-glk:          [SKIP][127] ([fdo#109271]) -> [PASS][128] +1 similar issue
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6029/shard-glk6/igt@kms_plane@pixel-format-pipe-c-planes-source-clamping.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12946/shard-glk9/igt@kms_plane@pixel-format-pipe-c-planes-source-clamping.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [FAIL][129] ([fdo#103166]) -> [PASS][130]
   [129]:

== Logs ==

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

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

* [PATCH] drm/i915/execlists: Flush the tasklet on parking
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
                   ` (2 preceding siblings ...)
  2019-05-02 23:31 ` ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-05-03  8:09 ` Chris Wilson
  2019-05-03 10:31   ` Tvrtko Ursulin
  2019-05-03  9:27 ` ✓ Fi.CI.BAT: success for series starting with drm/i915/execlists: Flush the tasklet on parking (rev2) Patchwork
  2019-05-03 12:55 ` ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 1 reply; 8+ messages in thread
From: Chris Wilson @ 2019-05-03  8:09 UTC (permalink / raw)
  To: intel-gfx

Tidy up the cleanup sequence by always ensure that the tasklet is
flushed on parking (before we cleanup). The parking provides a
convenient point to ensure that the backend is truly idle.

v2: Do the full check for idleness before parking, to be sure we flush
any residual interrupt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_cs.c   |  2 ++
 drivers/gpu/drm/i915/gt/intel_engine_pm.c   | 27 +++++++++++++++++----
 drivers/gpu/drm/i915/gt/intel_engine_pm.h   |  2 ++
 drivers/gpu/drm/i915/gt/intel_lrc.c         | 16 ++++++------
 drivers/gpu/drm/i915/intel_guc_submission.c |  2 ++
 5 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 650bc325a901..416d7e2e6f8c 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -1097,6 +1097,8 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
 	if (READ_ONCE(engine->execlists.active)) {
 		struct tasklet_struct *t = &engine->execlists.tasklet;
 
+		synchronize_hardirq(engine->i915->drm.irq);
+
 		local_bh_disable();
 		if (tasklet_trylock(t)) {
 			/* Must wait for any GPU reset in progress. */
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
index 3976aea3c1d1..ccf034764741 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -10,7 +10,7 @@
 #include "intel_engine_pm.h"
 #include "intel_gt_pm.h"
 
-static int intel_engine_unpark(struct intel_wakeref *wf)
+static int __engine_unpark(struct intel_wakeref *wf)
 {
 	struct intel_engine_cs *engine =
 		container_of(wf, typeof(*engine), wakeref);
@@ -37,7 +37,24 @@ static int intel_engine_unpark(struct intel_wakeref *wf)
 
 void intel_engine_pm_get(struct intel_engine_cs *engine)
 {
-	intel_wakeref_get(engine->i915, &engine->wakeref, intel_engine_unpark);
+	intel_wakeref_get(engine->i915, &engine->wakeref, __engine_unpark);
+}
+
+void intel_engine_park(struct intel_engine_cs *engine)
+{
+	/*
+	 * We are committed now to parking this engine, make sure there
+	 * will be no more interrupts arriving later and the engine
+	 * is truly idle.
+	 */
+	if (wait_for(intel_engine_is_idle(engine), 10)) {
+		struct drm_printer p = drm_debug_printer(__func__);
+
+		dev_err(engine->i915->drm.dev,
+			"%s is not idle before parking\n",
+			engine->name);
+		intel_engine_dump(engine, &p, NULL);
+	}
 }
 
 static bool switch_to_kernel_context(struct intel_engine_cs *engine)
@@ -56,7 +73,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 	 * Note, we do this without taking the timeline->mutex. We cannot
 	 * as we may be called while retiring the kernel context and so
 	 * already underneath the timeline->mutex. Instead we rely on the
-	 * exclusive property of the intel_engine_park that prevents anyone
+	 * exclusive property of the __engine_park that prevents anyone
 	 * else from creating a request on this engine. This also requires
 	 * that the ring is empty and we avoid any waits while constructing
 	 * the context, as they assume protection by the timeline->mutex.
@@ -76,7 +93,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
 	return false;
 }
 
-static int intel_engine_park(struct intel_wakeref *wf)
+static int __engine_park(struct intel_wakeref *wf)
 {
 	struct intel_engine_cs *engine =
 		container_of(wf, typeof(*engine), wakeref);
@@ -114,7 +131,7 @@ static int intel_engine_park(struct intel_wakeref *wf)
 
 void intel_engine_pm_put(struct intel_engine_cs *engine)
 {
-	intel_wakeref_put(engine->i915, &engine->wakeref, intel_engine_park);
+	intel_wakeref_put(engine->i915, &engine->wakeref, __engine_park);
 }
 
 void intel_engine_init__pm(struct intel_engine_cs *engine)
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.h b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
index 143ac90ba117..b326cd993d60 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
@@ -13,6 +13,8 @@ struct intel_engine_cs;
 void intel_engine_pm_get(struct intel_engine_cs *engine);
 void intel_engine_pm_put(struct intel_engine_cs *engine);
 
+void intel_engine_park(struct intel_engine_cs *engine);
+
 void intel_engine_init__pm(struct intel_engine_cs *engine);
 
 int intel_engines_resume(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 8c2eeff79f03..5580b6f1aa0c 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -136,6 +136,7 @@
 #include "i915_drv.h"
 #include "i915_gem_render_state.h"
 #include "i915_vgpu.h"
+#include "intel_engine_pm.h"
 #include "intel_lrc_reg.h"
 #include "intel_mocs.h"
 #include "intel_reset.h"
@@ -2331,6 +2332,11 @@ static int gen8_init_rcs_context(struct i915_request *rq)
 	return i915_gem_render_state_emit(rq);
 }
 
+static void execlists_park(struct intel_engine_cs *engine)
+{
+	intel_engine_park(engine);
+}
+
 void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 {
 	engine->submit_request = execlists_submit_request;
@@ -2342,7 +2348,7 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 	engine->reset.reset = execlists_reset;
 	engine->reset.finish = execlists_reset_finish;
 
-	engine->park = NULL;
+	engine->park = execlists_park;
 	engine->unpark = NULL;
 
 	engine->flags |= I915_ENGINE_SUPPORTS_STATS;
@@ -2355,14 +2361,6 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
 
 static void execlists_destroy(struct intel_engine_cs *engine)
 {
-	/*
-	 * Tasklet cannot be active at this point due intel_mark_active/idle
-	 * so this is just for documentation.
-	 */
-	if (GEM_DEBUG_WARN_ON(test_bit(TASKLET_STATE_SCHED,
-				       &engine->execlists.tasklet.state)))
-		tasklet_kill(&engine->execlists.tasklet);
-
 	intel_engine_cleanup_common(engine);
 	lrc_destroy_wa_ctx(engine);
 	kfree(engine);
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index 4c814344809c..57ed1dd4ae41 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -25,6 +25,7 @@
 #include <linux/circ_buf.h>
 #include <trace/events/dma_fence.h>
 
+#include "gt/intel_engine_pm.h"
 #include "gt/intel_lrc_reg.h"
 
 #include "intel_guc_submission.h"
@@ -1363,6 +1364,7 @@ static void guc_interrupts_release(struct drm_i915_private *dev_priv)
 
 static void guc_submission_park(struct intel_engine_cs *engine)
 {
+	intel_engine_park(engine);
 	intel_engine_unpin_breadcrumbs_irq(engine);
 	engine->flags &= ~I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
 }
-- 
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] 8+ messages in thread

* ✓ Fi.CI.BAT: success for series starting with drm/i915/execlists: Flush the tasklet on parking (rev2)
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
                   ` (3 preceding siblings ...)
  2019-05-03  8:09 ` [PATCH] " Chris Wilson
@ 2019-05-03  9:27 ` Patchwork
  2019-05-03 12:55 ` ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-05-03  9:27 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with drm/i915/execlists: Flush the tasklet on parking (rev2)
URL   : https://patchwork.freedesktop.org/series/60216/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6036 -> Patchwork_12956
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/60216/revisions/2/mbox/

Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       [PASS][1] -> [INCOMPLETE][2] ([fdo#107718] / [fdo#110581])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/fi-blb-e6850/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][3] -> [FAIL][4] ([fdo#109485])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@i915_selftest@live_hangcheck:
    - fi-skl-iommu:       [INCOMPLETE][5] ([fdo#108602] / [fdo#108744] / [fdo#110581]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/fi-skl-iommu/igt@i915_selftest@live_hangcheck.html

  
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108744]: https://bugs.freedesktop.org/show_bug.cgi?id=108744
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485
  [fdo#110581]: https://bugs.freedesktop.org/show_bug.cgi?id=110581


Participating hosts (50 -> 44)
------------------------------

  Additional (1): fi-bsw-n3050 
  Missing    (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-bdw-samus 


Build changes
-------------

  * Linux: CI_DRM_6036 -> Patchwork_12956

  CI_DRM_6036: 83921f2b51f00d6e999bf3d2255aa6127a96a405 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4972: f052e49a43cc9704ea5f240df15dd9d3dfed68ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12956: 9b4fe57a23dddadd28cfdeedd67c4aa1965a3cdb @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9b4fe57a23dd drm/i915: Leave engine parking to the engines
a500ddbdabf8 drm/i915/execlists: Flush the tasklet on parking

== Logs ==

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

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

* Re: [PATCH] drm/i915/execlists: Flush the tasklet on parking
  2019-05-03  8:09 ` [PATCH] " Chris Wilson
@ 2019-05-03 10:31   ` Tvrtko Ursulin
  0 siblings, 0 replies; 8+ messages in thread
From: Tvrtko Ursulin @ 2019-05-03 10:31 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx


On 03/05/2019 09:09, Chris Wilson wrote:
> Tidy up the cleanup sequence by always ensure that the tasklet is
> flushed on parking (before we cleanup). The parking provides a
> convenient point to ensure that the backend is truly idle.
> 
> v2: Do the full check for idleness before parking, to be sure we flush
> any residual interrupt.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_engine_cs.c   |  2 ++
>   drivers/gpu/drm/i915/gt/intel_engine_pm.c   | 27 +++++++++++++++++----
>   drivers/gpu/drm/i915/gt/intel_engine_pm.h   |  2 ++
>   drivers/gpu/drm/i915/gt/intel_lrc.c         | 16 ++++++------
>   drivers/gpu/drm/i915/intel_guc_submission.c |  2 ++
>   5 files changed, 35 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index 650bc325a901..416d7e2e6f8c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -1097,6 +1097,8 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
>   	if (READ_ONCE(engine->execlists.active)) {
>   		struct tasklet_struct *t = &engine->execlists.tasklet;
>   
> +		synchronize_hardirq(engine->i915->drm.irq);
> +
>   		local_bh_disable();
>   		if (tasklet_trylock(t)) {
>   			/* Must wait for any GPU reset in progress. */
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> index 3976aea3c1d1..ccf034764741 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
> @@ -10,7 +10,7 @@
>   #include "intel_engine_pm.h"
>   #include "intel_gt_pm.h"
>   
> -static int intel_engine_unpark(struct intel_wakeref *wf)
> +static int __engine_unpark(struct intel_wakeref *wf)
>   {
>   	struct intel_engine_cs *engine =
>   		container_of(wf, typeof(*engine), wakeref);
> @@ -37,7 +37,24 @@ static int intel_engine_unpark(struct intel_wakeref *wf)
>   
>   void intel_engine_pm_get(struct intel_engine_cs *engine)
>   {
> -	intel_wakeref_get(engine->i915, &engine->wakeref, intel_engine_unpark);
> +	intel_wakeref_get(engine->i915, &engine->wakeref, __engine_unpark);
> +}
> +
> +void intel_engine_park(struct intel_engine_cs *engine)
> +{
> +	/*
> +	 * We are committed now to parking this engine, make sure there
> +	 * will be no more interrupts arriving later and the engine
> +	 * is truly idle.
> +	 */
> +	if (wait_for(intel_engine_is_idle(engine), 10)) {
> +		struct drm_printer p = drm_debug_printer(__func__);
> +
> +		dev_err(engine->i915->drm.dev,
> +			"%s is not idle before parking\n",
> +			engine->name);
> +		intel_engine_dump(engine, &p, NULL);
> +	}
>   }
>   
>   static bool switch_to_kernel_context(struct intel_engine_cs *engine)
> @@ -56,7 +73,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
>   	 * Note, we do this without taking the timeline->mutex. We cannot
>   	 * as we may be called while retiring the kernel context and so
>   	 * already underneath the timeline->mutex. Instead we rely on the
> -	 * exclusive property of the intel_engine_park that prevents anyone
> +	 * exclusive property of the __engine_park that prevents anyone
>   	 * else from creating a request on this engine. This also requires
>   	 * that the ring is empty and we avoid any waits while constructing
>   	 * the context, as they assume protection by the timeline->mutex.
> @@ -76,7 +93,7 @@ static bool switch_to_kernel_context(struct intel_engine_cs *engine)
>   	return false;
>   }
>   
> -static int intel_engine_park(struct intel_wakeref *wf)
> +static int __engine_park(struct intel_wakeref *wf)
>   {
>   	struct intel_engine_cs *engine =
>   		container_of(wf, typeof(*engine), wakeref);
> @@ -114,7 +131,7 @@ static int intel_engine_park(struct intel_wakeref *wf)
>   
>   void intel_engine_pm_put(struct intel_engine_cs *engine)
>   {
> -	intel_wakeref_put(engine->i915, &engine->wakeref, intel_engine_park);
> +	intel_wakeref_put(engine->i915, &engine->wakeref, __engine_park);
>   }
>   
>   void intel_engine_init__pm(struct intel_engine_cs *engine)
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.h b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
> index 143ac90ba117..b326cd993d60 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_pm.h
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.h
> @@ -13,6 +13,8 @@ struct intel_engine_cs;
>   void intel_engine_pm_get(struct intel_engine_cs *engine);
>   void intel_engine_pm_put(struct intel_engine_cs *engine);
>   
> +void intel_engine_park(struct intel_engine_cs *engine);
> +
>   void intel_engine_init__pm(struct intel_engine_cs *engine);
>   
>   int intel_engines_resume(struct drm_i915_private *i915);
> diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
> index 8c2eeff79f03..5580b6f1aa0c 100644
> --- a/drivers/gpu/drm/i915/gt/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
> @@ -136,6 +136,7 @@
>   #include "i915_drv.h"
>   #include "i915_gem_render_state.h"
>   #include "i915_vgpu.h"
> +#include "intel_engine_pm.h"
>   #include "intel_lrc_reg.h"
>   #include "intel_mocs.h"
>   #include "intel_reset.h"
> @@ -2331,6 +2332,11 @@ static int gen8_init_rcs_context(struct i915_request *rq)
>   	return i915_gem_render_state_emit(rq);
>   }
>   
> +static void execlists_park(struct intel_engine_cs *engine)
> +{
> +	intel_engine_park(engine);
> +}
> +
>   void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
>   {
>   	engine->submit_request = execlists_submit_request;
> @@ -2342,7 +2348,7 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
>   	engine->reset.reset = execlists_reset;
>   	engine->reset.finish = execlists_reset_finish;
>   
> -	engine->park = NULL;
> +	engine->park = execlists_park;
>   	engine->unpark = NULL;
>   
>   	engine->flags |= I915_ENGINE_SUPPORTS_STATS;
> @@ -2355,14 +2361,6 @@ void intel_execlists_set_default_submission(struct intel_engine_cs *engine)
>   
>   static void execlists_destroy(struct intel_engine_cs *engine)
>   {
> -	/*
> -	 * Tasklet cannot be active at this point due intel_mark_active/idle
> -	 * so this is just for documentation.
> -	 */
> -	if (GEM_DEBUG_WARN_ON(test_bit(TASKLET_STATE_SCHED,
> -				       &engine->execlists.tasklet.state)))
> -		tasklet_kill(&engine->execlists.tasklet);
> -
>   	intel_engine_cleanup_common(engine);
>   	lrc_destroy_wa_ctx(engine);
>   	kfree(engine);
> diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
> index 4c814344809c..57ed1dd4ae41 100644
> --- a/drivers/gpu/drm/i915/intel_guc_submission.c
> +++ b/drivers/gpu/drm/i915/intel_guc_submission.c
> @@ -25,6 +25,7 @@
>   #include <linux/circ_buf.h>
>   #include <trace/events/dma_fence.h>
>   
> +#include "gt/intel_engine_pm.h"
>   #include "gt/intel_lrc_reg.h"
>   
>   #include "intel_guc_submission.h"
> @@ -1363,6 +1364,7 @@ static void guc_interrupts_release(struct drm_i915_private *dev_priv)
>   
>   static void guc_submission_park(struct intel_engine_cs *engine)
>   {
> +	intel_engine_park(engine);
>   	intel_engine_unpin_breadcrumbs_irq(engine);
>   	engine->flags &= ~I915_ENGINE_NEEDS_BREADCRUMB_TASKLET;
>   }
> 

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

Regards,

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

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

* ✗ Fi.CI.IGT: failure for series starting with drm/i915/execlists: Flush the tasklet on parking (rev2)
  2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
                   ` (4 preceding siblings ...)
  2019-05-03  9:27 ` ✓ Fi.CI.BAT: success for series starting with drm/i915/execlists: Flush the tasklet on parking (rev2) Patchwork
@ 2019-05-03 12:55 ` Patchwork
  5 siblings, 0 replies; 8+ messages in thread
From: Patchwork @ 2019-05-03 12:55 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with drm/i915/execlists: Flush the tasklet on parking (rev2)
URL   : https://patchwork.freedesktop.org/series/60216/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6036_full -> Patchwork_12956_full
====================================================

Summary
-------

  **FAILURE**

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

  

Possible new issues
-------------------

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-xtiled:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_draw_crc@draw-method-xrgb2101010-mmap-gtt-xtiled.html

  
Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@reset-stress:
    - shard-skl:          [PASS][2] -> [FAIL][3] ([fdo#105957])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl8/igt@gem_eio@reset-stress.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl8/igt@gem_eio@reset-stress.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-skl:          [PASS][4] -> [INCOMPLETE][5] ([fdo#104108] / [fdo#107773] / [fdo#110581])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl1/igt@gem_workarounds@suspend-resume-fd.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl10/igt@gem_workarounds@suspend-resume-fd.html

  * igt@i915_pm_rpm@basic-rte:
    - shard-skl:          [PASS][6] -> [INCOMPLETE][7] ([fdo#107807] / [fdo#110581])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl5/igt@i915_pm_rpm@basic-rte.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl10/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_suspend@sysfs-reader:
    - shard-apl:          [PASS][8] -> [DMESG-WARN][9] ([fdo#108566]) +8 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-apl5/igt@i915_suspend@sysfs-reader.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-apl1/igt@i915_suspend@sysfs-reader.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-kbl:          [PASS][10] -> [FAIL][11] ([fdo#102887] / [fdo#105363])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-kbl7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-kbl5/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-snb:          [PASS][12] -> [SKIP][13] ([fdo#109271])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-tilingchange:
    - shard-iclb:         [PASS][14] -> [FAIL][15] ([fdo#103167]) +3 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-tilingchange.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-tilingchange.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([fdo#109247]) +19 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-skl:          [PASS][18] -> [INCOMPLETE][19] ([fdo#104108] / [fdo#110581])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl9/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl10/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane@plane-position-covered-pipe-b-planes:
    - shard-iclb:         [PASS][20] -> [FAIL][21] ([fdo#110038])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_plane@plane-position-covered-pipe-b-planes.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_plane@plane-position-covered-pipe-b-planes.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][22] -> [FAIL][23] ([fdo#108145] / [fdo#110403]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl9/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl10/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_plane_lowres@pipe-b-tiling-none:
    - shard-iclb:         [PASS][24] -> [FAIL][25] ([fdo#103166])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_plane_lowres@pipe-b-tiling-none.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_plane_lowres@pipe-b-tiling-none.html

  * igt@kms_plane_scaling@pipe-b-scaler-with-clipping-clamping:
    - shard-glk:          [PASS][26] -> [SKIP][27] ([fdo#109271] / [fdo#109278]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-glk9/igt@kms_plane_scaling@pipe-b-scaler-with-clipping-clamping.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-glk5/igt@kms_plane_scaling@pipe-b-scaler-with-clipping-clamping.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][28] -> [SKIP][29] ([fdo#109642])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb5/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@primary_render:
    - shard-iclb:         [PASS][30] -> [FAIL][31] ([fdo#107383] / [fdo#110215]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_psr@primary_render.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_psr@primary_render.html

  * igt@kms_psr@psr2_sprite_mmap_cpu:
    - shard-iclb:         [PASS][32] -> [SKIP][33] ([fdo#109441])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_cpu.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb6/igt@kms_psr@psr2_sprite_mmap_cpu.html

  * igt@kms_universal_plane@universal-plane-pipe-c-functional:
    - shard-iclb:         [PASS][34] -> [FAIL][35] ([fdo#110037])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_universal_plane@universal-plane-pipe-c-functional.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@forked-basic-small-copy:
    - shard-glk:          [INCOMPLETE][36] ([fdo#103359] / [fdo#110581] / [k.org#198133]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-glk7/igt@gem_mmap_gtt@forked-basic-small-copy.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-glk8/igt@gem_mmap_gtt@forked-basic-small-copy.html

  * igt@i915_pm_rpm@dpms-mode-unset-lpsp:
    - shard-skl:          [INCOMPLETE][38] ([fdo#107807] / [fdo#110581]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl5/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_cursor_crc@cursor-64x21-onscreen:
    - shard-iclb:         [FAIL][40] ([fdo#103232]) -> [PASS][41] +2 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb7/igt@kms_cursor_crc@cursor-64x21-onscreen.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_cursor_crc@cursor-64x21-onscreen.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          [FAIL][42] ([fdo#104873]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-glk6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-glk8/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_flip@flip-vs-rmfb-interruptible:
    - shard-iclb:         [INCOMPLETE][44] ([fdo#107713] / [fdo#110581]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb7/igt@kms_flip@flip-vs-rmfb-interruptible.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb5/igt@kms_flip@flip-vs-rmfb-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt:
    - shard-iclb:         [FAIL][46] ([fdo#103167]) -> [PASS][47] +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-glk:          [SKIP][48] ([fdo#109271]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-glk4/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-glk9/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-apl:          [DMESG-WARN][50] ([fdo#108566]) -> [PASS][51] +1 similar issue
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-apl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-apl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping:
    - shard-glk:          [SKIP][52] ([fdo#109271] / [fdo#109278]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-glk8/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-glk9/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][54] ([fdo#99912]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-kbl2/igt@kms_setmode@basic.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-kbl1/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-skl:          [INCOMPLETE][56] ([fdo#104108] / [fdo#107773] / [fdo#110581]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-skl4/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-skl8/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  * igt@perf_pmu@rc6:
    - shard-kbl:          [SKIP][58] ([fdo#109271]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-kbl7/igt@perf_pmu@rc6.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-kbl5/igt@perf_pmu@rc6.html

  
#### Warnings ####

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [SKIP][60] ([fdo#109441]) -> [FAIL][61] ([fdo#107383] / [fdo#110215]) +1 similar issue
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6036/shard-iclb1/igt@kms_psr@psr2_sprite_blt.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_12956/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html

  
  [fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#104108]: https://bugs.freedesktop.org/show_bug.cgi?id=104108
  [fdo#104873]: https://bugs.freedesktop.org/show_bug.cgi?id=104873
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105957]: https://bugs.freedesktop.org/show_bug.cgi?id=105957
  [fdo#107383]: https://bugs.freedesktop.org/show_bug.cgi?id=107383
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107773]: https://bugs.freedesktop.org/show_bug.cgi?id=107773
  [fdo#107807]: https://bugs.freedesktop.org/show_bug.cgi?id=107807
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109247]: https://bugs.freedesktop.org/show_bug.cgi?id=109247
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110037]: https://bugs.freedesktop.org/show_bug.cgi?id=110037
  [fdo#110038]: https://bugs.freedesktop.org/show_bug.cgi?id=110038
  [fdo#110215]: https://bugs.freedesktop.org/show_bug.cgi?id=110215
  [fdo#110403]: https://bugs.freedesktop.org/show_bug.cgi?id=110403
  [fdo#110581]: https://bugs.freedesktop.org/show_bug.cgi?id=110581
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (10 -> 10)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * Linux: CI_DRM_6036 -> Patchwork_12956

  CI_DRM_6036: 83921f2b51f00d6e999bf3d2255aa6127a96a405 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4972: f052e49a43cc9704ea5f240df15dd9d3dfed68ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_12956: 9b4fe57a23dddadd28cfdeedd67c4aa1965a3cdb @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

end of thread, other threads:[~2019-05-03 12:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-02 15:00 [PATCH 1/2] drm/i915/execlists: Flush the tasklet on parking Chris Wilson
2019-05-02 15:00 ` [PATCH 2/2] drm/i915: Leave engine parking to the engines Chris Wilson
2019-05-02 18:23 ` ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/execlists: Flush the tasklet on parking Patchwork
2019-05-02 23:31 ` ✗ Fi.CI.IGT: failure " Patchwork
2019-05-03  8:09 ` [PATCH] " Chris Wilson
2019-05-03 10:31   ` Tvrtko Ursulin
2019-05-03  9:27 ` ✓ Fi.CI.BAT: success for series starting with drm/i915/execlists: Flush the tasklet on parking (rev2) Patchwork
2019-05-03 12:55 ` ✗ Fi.CI.IGT: failure " 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.