All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats
@ 2020-08-12 21:33 ` Chris Wilson
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2020-08-12 21:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Chris Wilson

We expose the heartbeat interval on each engine, allowing the sysadim to
disable them if they prefer avoiding any interruption for their GPU
tasks. A caveat to allowing the contexts to run without checks is that
we require such contexts to be non-persistent and so cleaned up on
closure (including abnormal process termination). However, we also need
to flush any persistent contexts that are still inflight at that time,
lest they continue to run unchecked.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_persistence.c | 92 ++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index e73a3e6a0..ca676d845 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -426,6 +426,87 @@ static void test_nohangcheck_hang(int i915)
 	close(dir);
 }
 
+static bool set_heartbeat(int i915, const char *name, unsigned int value)
+{
+	return gem_engine_property_printf(i915, name,
+					  "heartbeat_interval_ms",
+					  "%d", value) > 0;
+}
+
+static void test_noheartbeat_many(int i915, int count, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * If the user disables the heartbeat, after leaving behind
+	 * a number of long running *persistent* contexts, check they get
+	 * cleaned up.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin[count];
+
+		if (!set_heartbeat(i915, e->full_name, 100))
+			continue;
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+			uint32_t ctx;
+
+			ctx = gem_context_create(i915);
+			spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+					       .flags = (IGT_SPIN_FENCE_OUT |
+							 flags));
+			gem_context_destroy(i915, ctx);
+		}
+
+		if (set_heartbeat(i915, e->full_name, 0)) {
+			for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+				igt_assert_eq(wait_for_status(i915, spin[n]->out_fence, reset_timeout_ms),
+					      -EIO);
+			}
+		}
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++)
+			igt_spin_free(i915, spin[n]);
+
+		set_heartbeat(i915, e->full_name, 2500);
+		cleanup(i915);
+	}
+}
+
+static void test_noheartbeat_close(int i915, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * Check that non-persistent contexts are also cleaned up if we
+	 * close the context while they are active, but the engine's
+	 * heartbeat has already been disabled.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin;
+		uint32_t ctx;
+
+		if (!set_heartbeat(i915, e->full_name, 0))
+			continue;
+
+		ctx = gem_context_create(i915);
+		gem_context_set_persistence(i915, ctx, false);
+		spin = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+				    .flags = (IGT_SPIN_FENCE_OUT | flags));
+		gem_context_destroy(i915, ctx);
+
+		set_heartbeat(i915, e->full_name, 2500);
+
+		igt_assert_eq(wait_for_status(i915, spin->out_fence, reset_timeout_ms),
+			      -EIO);
+
+		igt_spin_free(i915, spin);
+		cleanup(i915);
+	}
+}
+
 static void test_nonpersistent_file(int i915)
 {
 	int debugfs = i915;
@@ -1157,6 +1238,17 @@ igt_main
 	igt_subtest("hang")
 		test_nohangcheck_hang(i915);
 
+	igt_subtest("heartbeat-stop")
+		test_noheartbeat_many(i915, 1, 0);
+	igt_subtest("heartbeat-hang")
+		test_noheartbeat_many(i915, 1, IGT_SPIN_NO_PREEMPTION);
+	igt_subtest("heartbeat-many")
+		test_noheartbeat_many(i915, 16, 0);
+	igt_subtest("heartbeat-close")
+		test_noheartbeat_close(i915, 0);
+	igt_subtest("heartbeat-hostile")
+		test_noheartbeat_close(i915, IGT_SPIN_NO_PREEMPTION);
+
 	igt_subtest_group {
 		igt_fixture
 			gem_require_contexts(i915);
-- 
2.28.0

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

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

* [igt-dev] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats
@ 2020-08-12 21:33 ` Chris Wilson
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2020-08-12 21:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Chris Wilson

We expose the heartbeat interval on each engine, allowing the sysadim to
disable them if they prefer avoiding any interruption for their GPU
tasks. A caveat to allowing the contexts to run without checks is that
we require such contexts to be non-persistent and so cleaned up on
closure (including abnormal process termination). However, we also need
to flush any persistent contexts that are still inflight at that time,
lest they continue to run unchecked.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/i915/gem_ctx_persistence.c | 92 ++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index e73a3e6a0..ca676d845 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -426,6 +426,87 @@ static void test_nohangcheck_hang(int i915)
 	close(dir);
 }
 
+static bool set_heartbeat(int i915, const char *name, unsigned int value)
+{
+	return gem_engine_property_printf(i915, name,
+					  "heartbeat_interval_ms",
+					  "%d", value) > 0;
+}
+
+static void test_noheartbeat_many(int i915, int count, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * If the user disables the heartbeat, after leaving behind
+	 * a number of long running *persistent* contexts, check they get
+	 * cleaned up.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin[count];
+
+		if (!set_heartbeat(i915, e->full_name, 100))
+			continue;
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+			uint32_t ctx;
+
+			ctx = gem_context_create(i915);
+			spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+					       .flags = (IGT_SPIN_FENCE_OUT |
+							 flags));
+			gem_context_destroy(i915, ctx);
+		}
+
+		if (set_heartbeat(i915, e->full_name, 0)) {
+			for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+				igt_assert_eq(wait_for_status(i915, spin[n]->out_fence, reset_timeout_ms),
+					      -EIO);
+			}
+		}
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++)
+			igt_spin_free(i915, spin[n]);
+
+		set_heartbeat(i915, e->full_name, 2500);
+		cleanup(i915);
+	}
+}
+
+static void test_noheartbeat_close(int i915, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * Check that non-persistent contexts are also cleaned up if we
+	 * close the context while they are active, but the engine's
+	 * heartbeat has already been disabled.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin;
+		uint32_t ctx;
+
+		if (!set_heartbeat(i915, e->full_name, 0))
+			continue;
+
+		ctx = gem_context_create(i915);
+		gem_context_set_persistence(i915, ctx, false);
+		spin = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+				    .flags = (IGT_SPIN_FENCE_OUT | flags));
+		gem_context_destroy(i915, ctx);
+
+		set_heartbeat(i915, e->full_name, 2500);
+
+		igt_assert_eq(wait_for_status(i915, spin->out_fence, reset_timeout_ms),
+			      -EIO);
+
+		igt_spin_free(i915, spin);
+		cleanup(i915);
+	}
+}
+
 static void test_nonpersistent_file(int i915)
 {
 	int debugfs = i915;
@@ -1157,6 +1238,17 @@ igt_main
 	igt_subtest("hang")
 		test_nohangcheck_hang(i915);
 
+	igt_subtest("heartbeat-stop")
+		test_noheartbeat_many(i915, 1, 0);
+	igt_subtest("heartbeat-hang")
+		test_noheartbeat_many(i915, 1, IGT_SPIN_NO_PREEMPTION);
+	igt_subtest("heartbeat-many")
+		test_noheartbeat_many(i915, 16, 0);
+	igt_subtest("heartbeat-close")
+		test_noheartbeat_close(i915, 0);
+	igt_subtest("heartbeat-hostile")
+		test_noheartbeat_close(i915, IGT_SPIN_NO_PREEMPTION);
+
 	igt_subtest_group {
 		igt_fixture
 			gem_require_contexts(i915);
-- 
2.28.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [Intel-gfx] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats
  2020-08-12 21:33 ` [igt-dev] " Chris Wilson
  (?)
@ 2020-08-12 21:33 ` Chris Wilson
  -1 siblings, 0 replies; 7+ messages in thread
From: Chris Wilson @ 2020-08-12 21:33 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Chris Wilson

We expose the heartbeat interval on each engine, allowing the sysadim to
disable them if they prefer avoiding any interruption for their GPU
tasks. A caveat to allowing the contexts to run without checks is that
we require such contexts to be non-persistent and so cleaned up on
closure (including abnormal process termination). However, we also need
to flush any persistent contexts that are still inflight at that time,
lest they continue to run unchecked.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
git add
---
 tests/i915/gem_ctx_persistence.c | 92 ++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index e73a3e6a0..d9c972130 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -426,6 +426,87 @@ static void test_nohangcheck_hang(int i915)
 	close(dir);
 }
 
+static bool set_heartbeat(int i915, const char *name, unsigned int value)
+{
+	return gem_engine_property_printf(i915, name,
+					  "heartbeat_interval_ms",
+					  "%d", value) > 0;
+}
+
+static void test_noheartbeat_many(int i915, int count, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * If the user disables the heartbeat, after leaving behind
+	 * a number of long running *persistent* contexts, check they get
+	 * cleaned up.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin[count];
+
+		if (!set_heartbeat(i915, e->full_name, 100))
+			continue;
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+			uint32_t ctx;
+
+			ctx = gem_context_create(i915);
+			spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+					       .flags = (IGT_SPIN_FENCE_OUT |
+							 flags));
+			gem_context_destroy(i915, ctx);
+		}
+
+		if (set_heartbeat(i915, e->full_name, 0)) {
+			for (int n = 0; n < ARRAY_SIZE(spin); n++) {
+				igt_assert_eq(wait_for_status(spin[n]->out_fence, reset_timeout_ms),
+					      -EIO);
+			}
+		}
+
+		for (int n = 0; n < ARRAY_SIZE(spin); n++)
+			igt_spin_free(i915, spin[n]);
+
+		set_heartbeat(i915, e->full_name, 2500);
+		cleanup(i915);
+	}
+}
+
+static void test_noheartbeat_close(int i915, unsigned int flags)
+{
+	cleanup(i915);
+
+	/*
+	 * Check that non-persistent contexts are also cleaned up if we
+	 * close the context while they are active, but the engine's
+	 * heartbeat has already been disabled.
+	 */
+
+	for_each_engine(e, i915) {
+		igt_spin_t *spin;
+		uint32_t ctx;
+
+		if (!set_heartbeat(i915, e->full_name, 0))
+			continue;
+
+		ctx = gem_context_create(i915);
+		gem_context_set_persistence(i915, ctx, false);
+		spin = igt_spin_new(i915, ctx, .engine = eb_ring(e),
+				    .flags = (IGT_SPIN_FENCE_OUT | flags));
+		gem_context_destroy(i915, ctx);
+
+		set_heartbeat(i915, e->full_name, 2500);
+
+		igt_assert_eq(wait_for_status(spin->out_fence, reset_timeout_ms),
+			      -EIO);
+
+		igt_spin_free(i915, spin);
+		cleanup(i915);
+	}
+}
+
 static void test_nonpersistent_file(int i915)
 {
 	int debugfs = i915;
@@ -1157,6 +1238,17 @@ igt_main
 	igt_subtest("hang")
 		test_nohangcheck_hang(i915);
 
+	igt_subtest("heartbeat-stop")
+		test_noheartbeat_many(i915, 1, 0);
+	igt_subtest("heartbeat-hang")
+		test_noheartbeat_many(i915, 1, IGT_SPIN_NO_PREEMPTION);
+	igt_subtest("heartbeat-many")
+		test_noheartbeat_many(i915, 16, 0);
+	igt_subtest("heartbeat-close")
+		test_noheartbeat_close(i915, 0);
+	igt_subtest("heartbeat-hostile")
+		test_noheartbeat_close(i915, IGT_SPIN_NO_PREEMPTION);
+
 	igt_subtest_group {
 		igt_fixture
 			gem_require_contexts(i915);
-- 
2.28.0

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats (rev2)
  2020-08-12 21:33 ` [igt-dev] " Chris Wilson
  (?)
  (?)
@ 2020-08-12 22:31 ` Patchwork
  -1 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2020-08-12 22:31 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 4186 bytes --]

== Series Details ==

Series: i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats (rev2)
URL   : https://patchwork.freedesktop.org/series/80571/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8879 -> IGTPW_4878
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html

  
#### Possible fixes ####

  * igt@kms_busy@basic@flip:
    - fi-kbl-x1275:       [DMESG-WARN][3] ([i915#62] / [i915#92] / [i915#95]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-kbl-x1275/igt@kms_busy@basic@flip.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-kbl-x1275/igt@kms_busy@basic@flip.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2:
    - fi-skl-guc:         [DMESG-WARN][5] ([i915#2203]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-dsi1:
    - {fi-tgl-dsi}:       [DMESG-WARN][7] ([i915#1982]) -> [PASS][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-tgl-dsi/igt@kms_flip@basic-flip-vs-wf_vblank@d-dsi1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-tgl-dsi/igt@kms_flip@basic-flip-vs-wf_vblank@d-dsi1.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][9] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][10] ([i915#62] / [i915#92]) +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_module_load@reload:
    - fi-kbl-x1275:       [DMESG-WARN][11] ([i915#62] / [i915#92]) -> [DMESG-WARN][12] ([i915#62] / [i915#92] / [i915#95])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/fi-kbl-x1275/igt@i915_module_load@reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/fi-kbl-x1275/igt@i915_module_load@reload.html

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

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (43 -> 37)
------------------------------

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5768 -> IGTPW_4878

  CI-20190529: 20190529
  CI_DRM_8879: 383f247a5884778b21e17dc9537e0bdeae503953 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4878: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html
  IGT_5768: 4ce2f30715836214d7b4452ada8c63b23eba73b7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@gem_ctx_persistence@heartbeat-close
+igt@gem_ctx_persistence@heartbeat-hang
+igt@gem_ctx_persistence@heartbeat-hostile
+igt@gem_ctx_persistence@heartbeat-many
+igt@gem_ctx_persistence@heartbeat-stop

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html

[-- Attachment #1.2: Type: text/html, Size: 5669 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats (rev2)
  2020-08-12 21:33 ` [igt-dev] " Chris Wilson
                   ` (2 preceding siblings ...)
  (?)
@ 2020-08-13  3:21 ` Patchwork
  -1 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2020-08-13  3:21 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 21553 bytes --]

== Series Details ==

Series: i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats (rev2)
URL   : https://patchwork.freedesktop.org/series/80571/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8879_full -> IGTPW_4878_full
====================================================

Summary
-------

  **FAILURE**

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

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@gem_ctx_persistence@heartbeat-many} (NEW):
    - shard-glk:          NOTRUN -> [FAIL][1] +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk8/igt@gem_ctx_persistence@heartbeat-many.html
    - shard-iclb:         NOTRUN -> [FAIL][2] +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-iclb1/igt@gem_ctx_persistence@heartbeat-many.html

  * {igt@gem_ctx_persistence@heartbeat-stop} (NEW):
    - shard-tglb:         NOTRUN -> [FAIL][3] +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb1/igt@gem_ctx_persistence@heartbeat-stop.html
    - shard-kbl:          NOTRUN -> [FAIL][4] +1 similar issue
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl4/igt@gem_ctx_persistence@heartbeat-stop.html

  * igt@kms_flip@2x-dpms-vs-vblank-race-interruptible@ab-vga1-hdmi-a1:
    - shard-hsw:          [PASS][5] -> [INCOMPLETE][6] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw1/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible@ab-vga1-hdmi-a1.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw6/igt@kms_flip@2x-dpms-vs-vblank-race-interruptible@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank@d-edp1:
    - shard-tglb:         NOTRUN -> [INCOMPLETE][7]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb3/igt@kms_flip@flip-vs-absolute-wf_vblank@d-edp1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_8879_full and IGTPW_4878_full:

### New IGT tests (5) ###

  * igt@gem_ctx_persistence@heartbeat-close:
    - Statuses : 5 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.20] s

  * igt@gem_ctx_persistence@heartbeat-hang:
    - Statuses : 1 fail(s) 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 4.22] s

  * igt@gem_ctx_persistence@heartbeat-hostile:
    - Statuses : 5 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.19] s

  * igt@gem_ctx_persistence@heartbeat-many:
    - Statuses : 5 fail(s) 1 skip(s)
    - Exec time: [0.0, 2.18] s

  * igt@gem_ctx_persistence@heartbeat-stop:
    - Statuses : 5 fail(s) 2 skip(s)
    - Exec time: [0.0, 2.20] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_exec@basic-nohangcheck:
    - shard-snb:          [PASS][8] -> [TIMEOUT][9] ([i915#1958])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-snb6/igt@gem_ctx_exec@basic-nohangcheck.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-snb4/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@kms_big_fb@x-tiled-64bpp-rotate-0:
    - shard-glk:          [PASS][10] -> [DMESG-FAIL][11] ([i915#118] / [i915#95])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk7/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk8/igt@kms_big_fb@x-tiled-64bpp-rotate-0.html

  * igt@kms_big_fb@x-tiled-addfb-size-overflow:
    - shard-hsw:          [PASS][12] -> [TIMEOUT][13] ([i915#1958]) +2 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw6/igt@kms_big_fb@x-tiled-addfb-size-overflow.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw6/igt@kms_big_fb@x-tiled-addfb-size-overflow.html

  * igt@kms_color@pipe-c-ctm-green-to-red:
    - shard-kbl:          [PASS][14] -> [FAIL][15] ([i915#129])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl7/igt@kms_color@pipe-c-ctm-green-to-red.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl1/igt@kms_color@pipe-c-ctm-green-to-red.html
    - shard-apl:          [PASS][16] -> [FAIL][17] ([i915#129] / [i915#1635])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-apl3/igt@kms_color@pipe-c-ctm-green-to-red.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-apl6/igt@kms_color@pipe-c-ctm-green-to-red.html

  * igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding:
    - shard-glk:          [PASS][18] -> [FAIL][19] ([i915#54])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk4/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk8/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
    - shard-apl:          [PASS][20] -> [FAIL][21] ([i915#1635] / [i915#54])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
    - shard-kbl:          [PASS][22] -> [FAIL][23] ([i915#54])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-64x21-sliding.html

  * igt@kms_flip@plain-flip-fb-recreate-interruptible@a-hdmi-a1:
    - shard-glk:          [PASS][24] -> [FAIL][25] ([i915#2122]) +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-hdmi-a1.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk2/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-hdmi-a1.html

  * igt@kms_flip_tiling@flip-x-tiled:
    - shard-kbl:          [PASS][26] -> [DMESG-WARN][27] ([i915#1982]) +1 similar issue
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl6/igt@kms_flip_tiling@flip-x-tiled.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl6/igt@kms_flip_tiling@flip-x-tiled.html

  * igt@kms_frontbuffer_tracking@basic:
    - shard-glk:          [PASS][28] -> [DMESG-WARN][29] ([i915#1982])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@kms_frontbuffer_tracking@basic.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk4/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-iclb:         [PASS][30] -> [DMESG-WARN][31] ([i915#1982])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc:
    - shard-tglb:         [PASS][32] -> [DMESG-WARN][33] ([i915#1982]) +5 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc.html

  * igt@kms_hdr@bpc-switch-suspend:
    - shard-kbl:          [PASS][34] -> [DMESG-WARN][35] ([i915#180]) +7 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl7/igt@kms_hdr@bpc-switch-suspend.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl4/igt@kms_hdr@bpc-switch-suspend.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         [PASS][36] -> [SKIP][37] ([fdo#109441]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-iclb7/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_vblank@pipe-b-wait-forked-busy:
    - shard-apl:          [PASS][38] -> [DMESG-WARN][39] ([i915#1635] / [i915#1982])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-apl3/igt@kms_vblank@pipe-b-wait-forked-busy.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-apl7/igt@kms_vblank@pipe-b-wait-forked-busy.html

  * igt@perf@blocking-parameterized:
    - shard-tglb:         [PASS][40] -> [FAIL][41] ([i915#1542])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-tglb7/igt@perf@blocking-parameterized.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb2/igt@perf@blocking-parameterized.html

  * igt@sysfs_heartbeat_interval@precise@vecs0:
    - shard-glk:          [PASS][42] -> [FAIL][43] ([i915#1755])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk7/igt@sysfs_heartbeat_interval@precise@vecs0.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk6/igt@sysfs_heartbeat_interval@precise@vecs0.html

  
#### Possible fixes ####

  * igt@gem_exec_whisper@basic-contexts-forked:
    - shard-glk:          [DMESG-WARN][44] ([i915#118] / [i915#95]) -> [PASS][45] +1 similar issue
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk1/igt@gem_exec_whisper@basic-contexts-forked.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk9/igt@gem_exec_whisper@basic-contexts-forked.html

  * igt@gem_pwrite@basic-random:
    - shard-snb:          [TIMEOUT][46] ([i915#1958]) -> [PASS][47] +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-snb2/igt@gem_pwrite@basic-random.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-snb5/igt@gem_pwrite@basic-random.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-tglb:         [SKIP][48] ([i915#1904]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-tglb5/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb5/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_selftest@live@execlists:
    - shard-tglb:         [INCOMPLETE][50] ([i915#2268]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-tglb3/igt@i915_selftest@live@execlists.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb8/igt@i915_selftest@live@execlists.html

  * igt@kms_color@pipe-a-ctm-max:
    - shard-hsw:          [TIMEOUT][52] ([i915#1958]) -> [PASS][53] +1 similar issue
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw4/igt@kms_color@pipe-a-ctm-max.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw6/igt@kms_color@pipe-a-ctm-max.html
    - shard-glk:          [TIMEOUT][54] ([i915#1958]) -> [PASS][55] +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@kms_color@pipe-a-ctm-max.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk1/igt@kms_color@pipe-a-ctm-max.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen:
    - shard-apl:          [FAIL][56] ([i915#1635] / [i915#54]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-apl6/igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-64x64-offscreen.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - shard-hsw:          [FAIL][58] ([i915#57]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw4/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_flip@2x-dpms-vs-vblank-race@ab-vga1-hdmi-a1:
    - shard-hsw:          [DMESG-WARN][60] ([i915#1982]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw6/igt@kms_flip@2x-dpms-vs-vblank-race@ab-vga1-hdmi-a1.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw4/igt@kms_flip@2x-dpms-vs-vblank-race@ab-vga1-hdmi-a1.html

  * igt@kms_flip@2x-flip-vs-suspend@bc-vga1-hdmi-a1:
    - shard-hsw:          [INCOMPLETE][62] ([i915#2055]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw4/igt@kms_flip@2x-flip-vs-suspend@bc-vga1-hdmi-a1.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw4/igt@kms_flip@2x-flip-vs-suspend@bc-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [DMESG-WARN][64] ([i915#180]) -> [PASS][65] +9 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-tglb:         [DMESG-WARN][66] ([i915#1982]) -> [PASS][67] +4 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render:
    - shard-iclb:         [DMESG-WARN][68] ([i915#1982]) -> [PASS][69] +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-render.html

  * igt@kms_psr@psr2_basic:
    - shard-iclb:         [SKIP][70] ([fdo#109441]) -> [PASS][71] +1 similar issue
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-iclb3/igt@kms_psr@psr2_basic.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-iclb2/igt@kms_psr@psr2_basic.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][72] ([i915#31]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl2/igt@kms_setmode@basic.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl2/igt@kms_setmode@basic.html

  * igt@prime_busy@hang-wait@bcs0:
    - shard-hsw:          [FAIL][74] ([i915#2258]) -> [PASS][75] +4 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw6/igt@prime_busy@hang-wait@bcs0.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw4/igt@prime_busy@hang-wait@bcs0.html

  
#### Warnings ####

  * igt@gem_exec_reloc@basic-concurrent16:
    - shard-glk:          [TIMEOUT][76] ([i915#1958]) -> [INCOMPLETE][77] ([i915#1958])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@gem_exec_reloc@basic-concurrent16.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk6/igt@gem_exec_reloc@basic-concurrent16.html

  * igt@kms_color@pipe-a-ctm-max:
    - shard-snb:          [TIMEOUT][78] ([i915#1958]) -> [SKIP][79] ([fdo#109271]) +1 similar issue
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-snb2/igt@kms_color@pipe-a-ctm-max.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-snb5/igt@kms_color@pipe-a-ctm-max.html

  * igt@kms_color_chamelium@pipe-c-ctm-0-5:
    - shard-glk:          [TIMEOUT][80] ([i915#1366] / [i915#1958]) -> [SKIP][81] ([fdo#109271] / [fdo#111827])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk7/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
    - shard-hsw:          [TIMEOUT][82] ([i915#1958]) -> [SKIP][83] ([fdo#109271] / [fdo#111827])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw4/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw6/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
    - shard-snb:          [TIMEOUT][84] ([i915#1958]) -> [SKIP][85] ([fdo#109271] / [fdo#111827])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-snb2/igt@kms_color_chamelium@pipe-c-ctm-0-5.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-snb6/igt@kms_color_chamelium@pipe-c-ctm-0-5.html

  * igt@kms_content_protection@srm:
    - shard-kbl:          [TIMEOUT][86] ([i915#1319]) -> [TIMEOUT][87] ([i915#1319] / [i915#1958])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-kbl7/igt@kms_content_protection@srm.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-kbl1/igt@kms_content_protection@srm.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff:
    - shard-hsw:          [TIMEOUT][88] ([i915#1958]) -> [SKIP][89] ([fdo#109271])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html
    - shard-glk:          [TIMEOUT][90] ([i915#1958]) -> [SKIP][91] ([fdo#109271])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-glk9/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-glk1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping:
    - shard-hsw:          [SKIP][92] ([fdo#109271]) -> [TIMEOUT][93] ([i915#1958])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-hsw1/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-hsw6/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html

  * igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm:
    - shard-snb:          [SKIP][94] ([fdo#109271]) -> [TIMEOUT][95] ([i915#1958]) +4 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8879/shard-snb4/igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/shard-snb4/igt@kms_vblank@pipe-a-ts-continuation-modeset-rpm.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#129]: https://gitlab.freedesktop.org/drm/intel/issues/129
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1366]: https://gitlab.freedesktop.org/drm/intel/issues/1366
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2258]: https://gitlab.freedesktop.org/drm/intel/issues/2258
  [i915#2268]: https://gitlab.freedesktop.org/drm/intel/issues/2268
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#57]: https://gitlab.freedesktop.org/drm/intel/issues/57
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5768 -> IGTPW_4878
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8879: 383f247a5884778b21e17dc9537e0bdeae503953 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4878: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html
  IGT_5768: 4ce2f30715836214d7b4452ada8c63b23eba73b7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4878/index.html

[-- Attachment #1.2: Type: text/html, Size: 26397 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats
  2020-08-12 21:33 ` [igt-dev] " Chris Wilson
@ 2020-09-25 11:10   ` Joonas Lahtinen
  -1 siblings, 0 replies; 7+ messages in thread
From: Joonas Lahtinen @ 2020-09-25 11:10 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev, Chris Wilson

Quoting Chris Wilson (2020-08-13 00:33:00)
> We expose the heartbeat interval on each engine, allowing the sysadim to
> disable them if they prefer avoiding any interruption for their GPU
> tasks. A caveat to allowing the contexts to run without checks is that
> we require such contexts to be non-persistent and so cleaned up on
> closure (including abnormal process termination). However, we also need
> to flush any persistent contexts that are still inflight at that time,
> lest they continue to run unchecked.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

As mentioned on the kernel patches, the right thing to do.

Acked-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas

> ---
>  tests/i915/gem_ctx_persistence.c | 92 ++++++++++++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
> 
> diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> index e73a3e6a0..ca676d845 100644
> --- a/tests/i915/gem_ctx_persistence.c
> +++ b/tests/i915/gem_ctx_persistence.c
> @@ -426,6 +426,87 @@ static void test_nohangcheck_hang(int i915)
>         close(dir);
>  }
>  
> +static bool set_heartbeat(int i915, const char *name, unsigned int value)
> +{
> +       return gem_engine_property_printf(i915, name,
> +                                         "heartbeat_interval_ms",
> +                                         "%d", value) > 0;
> +}
> +
> +static void test_noheartbeat_many(int i915, int count, unsigned int flags)
> +{
> +       cleanup(i915);
> +
> +       /*
> +        * If the user disables the heartbeat, after leaving behind
> +        * a number of long running *persistent* contexts, check they get
> +        * cleaned up.
> +        */
> +
> +       for_each_engine(e, i915) {
> +               igt_spin_t *spin[count];
> +
> +               if (!set_heartbeat(i915, e->full_name, 100))
> +                       continue;
> +
> +               for (int n = 0; n < ARRAY_SIZE(spin); n++) {
> +                       uint32_t ctx;
> +
> +                       ctx = gem_context_create(i915);
> +                       spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
> +                                              .flags = (IGT_SPIN_FENCE_OUT |
> +                                                        flags));
> +                       gem_context_destroy(i915, ctx);
> +               }
> +
> +               if (set_heartbeat(i915, e->full_name, 0)) {
> +                       for (int n = 0; n < ARRAY_SIZE(spin); n++) {
> +                               igt_assert_eq(wait_for_status(i915, spin[n]->out_fence, reset_timeout_ms),
> +                                             -EIO);
> +                       }
> +               }
> +
> +               for (int n = 0; n < ARRAY_SIZE(spin); n++)
> +                       igt_spin_free(i915, spin[n]);
> +
> +               set_heartbeat(i915, e->full_name, 2500);
> +               cleanup(i915);
> +       }
> +}
> +
> +static void test_noheartbeat_close(int i915, unsigned int flags)
> +{
> +       cleanup(i915);
> +
> +       /*
> +        * Check that non-persistent contexts are also cleaned up if we
> +        * close the context while they are active, but the engine's
> +        * heartbeat has already been disabled.
> +        */
> +
> +       for_each_engine(e, i915) {
> +               igt_spin_t *spin;
> +               uint32_t ctx;
> +
> +               if (!set_heartbeat(i915, e->full_name, 0))
> +                       continue;
> +
> +               ctx = gem_context_create(i915);
> +               gem_context_set_persistence(i915, ctx, false);
> +               spin = igt_spin_new(i915, ctx, .engine = eb_ring(e),
> +                                   .flags = (IGT_SPIN_FENCE_OUT | flags));
> +               gem_context_destroy(i915, ctx);
> +
> +               set_heartbeat(i915, e->full_name, 2500);
> +
> +               igt_assert_eq(wait_for_status(i915, spin->out_fence, reset_timeout_ms),
> +                             -EIO);
> +
> +               igt_spin_free(i915, spin);
> +               cleanup(i915);
> +       }
> +}
> +
>  static void test_nonpersistent_file(int i915)
>  {
>         int debugfs = i915;
> @@ -1157,6 +1238,17 @@ igt_main
>         igt_subtest("hang")
>                 test_nohangcheck_hang(i915);
>  
> +       igt_subtest("heartbeat-stop")
> +               test_noheartbeat_many(i915, 1, 0);
> +       igt_subtest("heartbeat-hang")
> +               test_noheartbeat_many(i915, 1, IGT_SPIN_NO_PREEMPTION);
> +       igt_subtest("heartbeat-many")
> +               test_noheartbeat_many(i915, 16, 0);
> +       igt_subtest("heartbeat-close")
> +               test_noheartbeat_close(i915, 0);
> +       igt_subtest("heartbeat-hostile")
> +               test_noheartbeat_close(i915, IGT_SPIN_NO_PREEMPTION);
> +
>         igt_subtest_group {
>                 igt_fixture
>                         gem_require_contexts(i915);
> -- 
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [igt-dev] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats
@ 2020-09-25 11:10   ` Joonas Lahtinen
  0 siblings, 0 replies; 7+ messages in thread
From: Joonas Lahtinen @ 2020-09-25 11:10 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev, Chris Wilson

Quoting Chris Wilson (2020-08-13 00:33:00)
> We expose the heartbeat interval on each engine, allowing the sysadim to
> disable them if they prefer avoiding any interruption for their GPU
> tasks. A caveat to allowing the contexts to run without checks is that
> we require such contexts to be non-persistent and so cleaned up on
> closure (including abnormal process termination). However, we also need
> to flush any persistent contexts that are still inflight at that time,
> lest they continue to run unchecked.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

As mentioned on the kernel patches, the right thing to do.

Acked-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Regards, Joonas

> ---
>  tests/i915/gem_ctx_persistence.c | 92 ++++++++++++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
> 
> diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
> index e73a3e6a0..ca676d845 100644
> --- a/tests/i915/gem_ctx_persistence.c
> +++ b/tests/i915/gem_ctx_persistence.c
> @@ -426,6 +426,87 @@ static void test_nohangcheck_hang(int i915)
>         close(dir);
>  }
>  
> +static bool set_heartbeat(int i915, const char *name, unsigned int value)
> +{
> +       return gem_engine_property_printf(i915, name,
> +                                         "heartbeat_interval_ms",
> +                                         "%d", value) > 0;
> +}
> +
> +static void test_noheartbeat_many(int i915, int count, unsigned int flags)
> +{
> +       cleanup(i915);
> +
> +       /*
> +        * If the user disables the heartbeat, after leaving behind
> +        * a number of long running *persistent* contexts, check they get
> +        * cleaned up.
> +        */
> +
> +       for_each_engine(e, i915) {
> +               igt_spin_t *spin[count];
> +
> +               if (!set_heartbeat(i915, e->full_name, 100))
> +                       continue;
> +
> +               for (int n = 0; n < ARRAY_SIZE(spin); n++) {
> +                       uint32_t ctx;
> +
> +                       ctx = gem_context_create(i915);
> +                       spin[n] = igt_spin_new(i915, ctx, .engine = eb_ring(e),
> +                                              .flags = (IGT_SPIN_FENCE_OUT |
> +                                                        flags));
> +                       gem_context_destroy(i915, ctx);
> +               }
> +
> +               if (set_heartbeat(i915, e->full_name, 0)) {
> +                       for (int n = 0; n < ARRAY_SIZE(spin); n++) {
> +                               igt_assert_eq(wait_for_status(i915, spin[n]->out_fence, reset_timeout_ms),
> +                                             -EIO);
> +                       }
> +               }
> +
> +               for (int n = 0; n < ARRAY_SIZE(spin); n++)
> +                       igt_spin_free(i915, spin[n]);
> +
> +               set_heartbeat(i915, e->full_name, 2500);
> +               cleanup(i915);
> +       }
> +}
> +
> +static void test_noheartbeat_close(int i915, unsigned int flags)
> +{
> +       cleanup(i915);
> +
> +       /*
> +        * Check that non-persistent contexts are also cleaned up if we
> +        * close the context while they are active, but the engine's
> +        * heartbeat has already been disabled.
> +        */
> +
> +       for_each_engine(e, i915) {
> +               igt_spin_t *spin;
> +               uint32_t ctx;
> +
> +               if (!set_heartbeat(i915, e->full_name, 0))
> +                       continue;
> +
> +               ctx = gem_context_create(i915);
> +               gem_context_set_persistence(i915, ctx, false);
> +               spin = igt_spin_new(i915, ctx, .engine = eb_ring(e),
> +                                   .flags = (IGT_SPIN_FENCE_OUT | flags));
> +               gem_context_destroy(i915, ctx);
> +
> +               set_heartbeat(i915, e->full_name, 2500);
> +
> +               igt_assert_eq(wait_for_status(i915, spin->out_fence, reset_timeout_ms),
> +                             -EIO);
> +
> +               igt_spin_free(i915, spin);
> +               cleanup(i915);
> +       }
> +}
> +
>  static void test_nonpersistent_file(int i915)
>  {
>         int debugfs = i915;
> @@ -1157,6 +1238,17 @@ igt_main
>         igt_subtest("hang")
>                 test_nohangcheck_hang(i915);
>  
> +       igt_subtest("heartbeat-stop")
> +               test_noheartbeat_many(i915, 1, 0);
> +       igt_subtest("heartbeat-hang")
> +               test_noheartbeat_many(i915, 1, IGT_SPIN_NO_PREEMPTION);
> +       igt_subtest("heartbeat-many")
> +               test_noheartbeat_many(i915, 16, 0);
> +       igt_subtest("heartbeat-close")
> +               test_noheartbeat_close(i915, 0);
> +       igt_subtest("heartbeat-hostile")
> +               test_noheartbeat_close(i915, IGT_SPIN_NO_PREEMPTION);
> +
>         igt_subtest_group {
>                 igt_fixture
>                         gem_require_contexts(i915);
> -- 
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2020-09-25 11:10 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-12 21:33 [Intel-gfx] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats Chris Wilson
2020-08-12 21:33 ` [igt-dev] " Chris Wilson
2020-08-12 21:33 ` [Intel-gfx] " Chris Wilson
2020-08-12 22:31 ` [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats (rev2) Patchwork
2020-08-13  3:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-09-25 11:10 ` [Intel-gfx] [igt-dev] [PATCH i-g-t] i915/gem_ctx_persistence: Exercise cleanup after disabling heartbeats Joonas Lahtinen
2020-09-25 11:10   ` Joonas Lahtinen

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.