All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915/selftests: Refactor common flush_test()
@ 2018-05-05  9:10 Chris Wilson
  2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Chris Wilson @ 2018-05-05  9:10 UTC (permalink / raw)
  To: intel-gfx

Pull igt_flush_test() out into its own library before copying and
pasting the code for a third time.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/Makefile                 |  3 +-
 .../gpu/drm/i915/selftests/igt_flush_test.c   | 64 +++++++++++++++++
 .../gpu/drm/i915/selftests/igt_flush_test.h   | 14 ++++
 .../gpu/drm/i915/selftests/intel_hangcheck.c  | 66 ++----------------
 drivers/gpu/drm/i915/selftests/intel_lrc.c    | 68 ++-----------------
 5 files changed, 93 insertions(+), 122 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/selftests/igt_flush_test.c
 create mode 100644 drivers/gpu/drm/i915/selftests/igt_flush_test.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 00c13382b008..4c6adae23e18 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -158,7 +158,8 @@ i915-y += dvo_ch7017.o \
 i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
 i915-$(CONFIG_DRM_I915_SELFTEST) += \
 	selftests/i915_random.o \
-	selftests/i915_selftest.o
+	selftests/i915_selftest.o \
+	selftests/igt_flush_test.o
 
 # virtual gpu code
 i915-y += i915_vgpu.o
diff --git a/drivers/gpu/drm/i915/selftests/igt_flush_test.c b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
new file mode 100644
index 000000000000..abff2f04ea84
--- /dev/null
+++ b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
@@ -0,0 +1,64 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2018 Intel Corporation
+ */
+
+#include "../i915_drv.h"
+
+#include "../i915_selftest.h"
+#include "igt_flush_test.h"
+
+struct wedge_me {
+	struct delayed_work work;
+	struct drm_i915_private *i915;
+	const void *symbol;
+};
+
+static void wedge_me(struct work_struct *work)
+{
+	struct wedge_me *w = container_of(work, typeof(*w), work.work);
+
+	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
+
+	GEM_TRACE("%pS timed out.\n", w->symbol);
+	GEM_TRACE_DUMP();
+
+	i915_gem_set_wedged(w->i915);
+}
+
+static void __init_wedge(struct wedge_me *w,
+			 struct drm_i915_private *i915,
+			 long timeout,
+			 const void *symbol)
+{
+	w->i915 = i915;
+	w->symbol = symbol;
+
+	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
+	schedule_delayed_work(&w->work, timeout);
+}
+
+static void __fini_wedge(struct wedge_me *w)
+{
+	cancel_delayed_work_sync(&w->work);
+	destroy_delayed_work_on_stack(&w->work);
+	w->i915 = NULL;
+}
+
+#define wedge_on_timeout(W, DEV, TIMEOUT)				\
+	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
+	     (W)->i915;							\
+	     __fini_wedge((W)))
+
+int igt_flush_test(struct drm_i915_private *i915, unsigned int flags)
+{
+	struct wedge_me w;
+
+	cond_resched();
+
+	wedge_on_timeout(&w, i915, HZ)
+		i915_gem_wait_for_idle(i915, flags);
+
+	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
+}
diff --git a/drivers/gpu/drm/i915/selftests/igt_flush_test.h b/drivers/gpu/drm/i915/selftests/igt_flush_test.h
new file mode 100644
index 000000000000..63e009927c43
--- /dev/null
+++ b/drivers/gpu/drm/i915/selftests/igt_flush_test.h
@@ -0,0 +1,14 @@
+/*
+ * SPDX-License-Identifier: MIT
+ *
+ * Copyright © 2018 Intel Corporation
+ */
+
+#ifndef IGT_FLUSH_TEST_H
+#define IGT_FLUSH_TEST_H
+
+struct drm_i915_private;
+
+int igt_flush_test(struct drm_i915_private *i915, unsigned int flags);
+
+#endif /* IGT_FLUSH_TEST_H */
diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
index c61bf65454a9..438e0b045a2c 100644
--- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
+++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
@@ -26,6 +26,7 @@
 
 #include "../i915_selftest.h"
 #include "i915_random.h"
+#include "igt_flush_test.h"
 
 #include "mock_context.h"
 #include "mock_drm.h"
@@ -253,61 +254,6 @@ static u32 hws_seqno(const struct hang *h, const struct i915_request *rq)
 	return READ_ONCE(h->seqno[rq->fence.context % (PAGE_SIZE/sizeof(u32))]);
 }
 
-struct wedge_me {
-	struct delayed_work work;
-	struct drm_i915_private *i915;
-	const void *symbol;
-};
-
-static void wedge_me(struct work_struct *work)
-{
-	struct wedge_me *w = container_of(work, typeof(*w), work.work);
-
-	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
-
-	GEM_TRACE("%pS timed out.\n", w->symbol);
-	GEM_TRACE_DUMP();
-
-	i915_gem_set_wedged(w->i915);
-}
-
-static void __init_wedge(struct wedge_me *w,
-			 struct drm_i915_private *i915,
-			 long timeout,
-			 const void *symbol)
-{
-	w->i915 = i915;
-	w->symbol = symbol;
-
-	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
-	schedule_delayed_work(&w->work, timeout);
-}
-
-static void __fini_wedge(struct wedge_me *w)
-{
-	cancel_delayed_work_sync(&w->work);
-	destroy_delayed_work_on_stack(&w->work);
-	w->i915 = NULL;
-}
-
-#define wedge_on_timeout(W, DEV, TIMEOUT)				\
-	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
-	     (W)->i915;							\
-	     __fini_wedge((W)))
-
-static noinline int
-flush_test(struct drm_i915_private *i915, unsigned int flags)
-{
-	struct wedge_me w;
-
-	cond_resched();
-
-	wedge_on_timeout(&w, i915, HZ)
-		i915_gem_wait_for_idle(i915, flags);
-
-	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
-}
-
 static void hang_fini(struct hang *h)
 {
 	*h->batch = MI_BATCH_BUFFER_END;
@@ -321,7 +267,7 @@ static void hang_fini(struct hang *h)
 
 	kernel_context_close(h->ctx);
 
-	flush_test(h->i915, I915_WAIT_LOCKED);
+	igt_flush_test(h->i915, I915_WAIT_LOCKED);
 }
 
 static bool wait_until_running(struct hang *h, struct i915_request *rq)
@@ -575,7 +521,7 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active)
 		if (err)
 			break;
 
-		err = flush_test(i915, 0);
+		err = igt_flush_test(i915, 0);
 		if (err)
 			break;
 	}
@@ -874,7 +820,7 @@ static int __igt_reset_engines(struct drm_i915_private *i915,
 		if (err)
 			break;
 
-		err = flush_test(i915, 0);
+		err = igt_flush_test(i915, 0);
 		if (err)
 			break;
 	}
@@ -1168,7 +1114,7 @@ static int igt_reset_queue(void *arg)
 
 		i915_request_put(prev);
 
-		err = flush_test(i915, I915_WAIT_LOCKED);
+		err = igt_flush_test(i915, I915_WAIT_LOCKED);
 		if (err)
 			break;
 	}
@@ -1280,7 +1226,7 @@ int intel_hangcheck_live_selftests(struct drm_i915_private *i915)
 	err = i915_subtests(tests, i915);
 
 	mutex_lock(&i915->drm.struct_mutex);
-	flush_test(i915, I915_WAIT_LOCKED);
+	igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 
 	i915_modparams.enable_hangcheck = saved_hangcheck;
diff --git a/drivers/gpu/drm/i915/selftests/intel_lrc.c b/drivers/gpu/drm/i915/selftests/intel_lrc.c
index b7460b5dd4f7..1b8a07125150 100644
--- a/drivers/gpu/drm/i915/selftests/intel_lrc.c
+++ b/drivers/gpu/drm/i915/selftests/intel_lrc.c
@@ -5,6 +5,7 @@
  */
 
 #include "../i915_selftest.h"
+#include "igt_flush_test.h"
 
 #include "mock_context.h"
 
@@ -168,61 +169,6 @@ static u32 hws_seqno(const struct spinner *spin, const struct i915_request *rq)
 	return READ_ONCE(*seqno);
 }
 
-struct wedge_me {
-	struct delayed_work work;
-	struct drm_i915_private *i915;
-	const void *symbol;
-};
-
-static void wedge_me(struct work_struct *work)
-{
-	struct wedge_me *w = container_of(work, typeof(*w), work.work);
-
-	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
-
-	GEM_TRACE("%pS timed out.\n", w->symbol);
-	GEM_TRACE_DUMP();
-
-	i915_gem_set_wedged(w->i915);
-}
-
-static void __init_wedge(struct wedge_me *w,
-			 struct drm_i915_private *i915,
-			 long timeout,
-			 const void *symbol)
-{
-	w->i915 = i915;
-	w->symbol = symbol;
-
-	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
-	schedule_delayed_work(&w->work, timeout);
-}
-
-static void __fini_wedge(struct wedge_me *w)
-{
-	cancel_delayed_work_sync(&w->work);
-	destroy_delayed_work_on_stack(&w->work);
-	w->i915 = NULL;
-}
-
-#define wedge_on_timeout(W, DEV, TIMEOUT)				\
-	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
-	     (W)->i915;							\
-	     __fini_wedge((W)))
-
-static noinline int
-flush_test(struct drm_i915_private *i915, unsigned int flags)
-{
-	struct wedge_me w;
-
-	cond_resched();
-
-	wedge_on_timeout(&w, i915, HZ)
-		i915_gem_wait_for_idle(i915, flags);
-
-	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
-}
-
 static void spinner_end(struct spinner *spin)
 {
 	*spin->batch = MI_BATCH_BUFFER_END;
@@ -295,7 +241,7 @@ static int live_sanitycheck(void *arg)
 		}
 
 		spinner_end(&spin);
-		if (flush_test(i915, I915_WAIT_LOCKED)) {
+		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
 			err = -EIO;
 			goto err_ctx;
 		}
@@ -307,7 +253,7 @@ static int live_sanitycheck(void *arg)
 err_spin:
 	spinner_fini(&spin);
 err_unlock:
-	flush_test(i915, I915_WAIT_LOCKED);
+	igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 	return err;
 }
@@ -380,7 +326,7 @@ static int live_preempt(void *arg)
 
 		spinner_end(&spin_hi);
 		spinner_end(&spin_lo);
-		if (flush_test(i915, I915_WAIT_LOCKED)) {
+		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
 			err = -EIO;
 			goto err_ctx_lo;
 		}
@@ -396,7 +342,7 @@ static int live_preempt(void *arg)
 err_spin_hi:
 	spinner_fini(&spin_hi);
 err_unlock:
-	flush_test(i915, I915_WAIT_LOCKED);
+	igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 	return err;
 }
@@ -470,7 +416,7 @@ static int live_late_preempt(void *arg)
 
 		spinner_end(&spin_hi);
 		spinner_end(&spin_lo);
-		if (flush_test(i915, I915_WAIT_LOCKED)) {
+		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
 			err = -EIO;
 			goto err_ctx_lo;
 		}
@@ -486,7 +432,7 @@ static int live_late_preempt(void *arg)
 err_spin_hi:
 	spinner_fini(&spin_hi);
 err_unlock:
-	flush_test(i915, I915_WAIT_LOCKED);
+	igt_flush_test(i915, I915_WAIT_LOCKED);
 	mutex_unlock(&i915->drm.struct_mutex);
 	return err;
 
-- 
2.17.0

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

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

* [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts
  2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
@ 2018-05-05  9:10 ` Chris Wilson
  2018-05-08 10:46   ` Chris Wilson
  2018-05-08 11:38   ` Mika Kuoppala
  2018-05-05  9:28 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/selftests: Refactor common flush_test() Patchwork
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 9+ messages in thread
From: Chris Wilson @ 2018-05-05  9:10 UTC (permalink / raw)
  To: intel-gfx

igt_ctx_exec() expects that we retire all active requests/objects before
completing, so that when we clean up the files afterwards they are ready
to be freed. Before we do so, it is then prudent to ensure that we have
indeed retired the GPU activity, raising an error if it fails. If we do
not, we run the risk of triggering an assertion when freeing the object:

  __i915_gem_free_objects:4793 GEM_BUG_ON(i915_gem_object_is_active(obj))

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/selftests/i915_gem_context.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
index 7ecaed50d0b9..ddb03f009232 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
@@ -23,6 +23,7 @@
  */
 
 #include "../i915_selftest.h"
+#include "igt_flush_test.h"
 
 #include "mock_drm.h"
 #include "huge_gem_object.h"
@@ -411,6 +412,8 @@ static int igt_ctx_exec(void *arg)
 	}
 
 out_unlock:
+	if (igt_flush_test(i915, I915_WAIT_LOCKED))
+		err = -EIO;
 	mutex_unlock(&i915->drm.struct_mutex);
 
 	mock_file_free(i915, file);
-- 
2.17.0

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

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

* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
  2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
  2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
@ 2018-05-05  9:28 ` Patchwork
  2018-05-05  9:43 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2018-05-05  9:28 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
URL   : https://patchwork.freedesktop.org/series/42715/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e6fcfe99f6ef drm/i915/selftests: Refactor common flush_test()
-:26: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

-:31: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1
#31: FILE: drivers/gpu/drm/i915/selftests/igt_flush_test.c:1:
+/*

-:79: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'W' - possible side-effects?
#79: FILE: drivers/gpu/drm/i915/selftests/igt_flush_test.c:49:
+#define wedge_on_timeout(W, DEV, TIMEOUT)				\
+	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
+	     (W)->i915;							\
+	     __fini_wedge((W)))

-:101: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier tag in line 1
#101: FILE: drivers/gpu/drm/i915/selftests/igt_flush_test.h:1:
+/*

total: 0 errors, 3 warnings, 1 checks, 311 lines checked
9b6426113ebf drm/i915/selftests: Flush GPU activity before completing live_contexts

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

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

* ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
  2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
  2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
  2018-05-05  9:28 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/selftests: Refactor common flush_test() Patchwork
@ 2018-05-05  9:43 ` Patchwork
  2018-05-05 10:31 ` ✓ Fi.CI.IGT: " Patchwork
  2018-05-08 11:39 ` [PATCH 1/2] " Mika Kuoppala
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2018-05-05  9:43 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
URL   : https://patchwork.freedesktop.org/series/42715/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4149 -> Patchwork_8913 =

== Summary - SUCCESS ==

  No regressions found.

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

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-4200u:       PASS -> DMESG-FAIL (fdo#102614)

    
    ==== Possible fixes ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

    igt@gem_exec_suspend@basic-s4-devices:
      fi-skl-guc:         FAIL (fdo#105900, fdo#104699) -> PASS +1

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-cnl-psr:         FAIL (fdo#100368) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      {fi-hsw-peppy}:     DMESG-FAIL (fdo#102614, fdo#106103) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
      fi-ivb-3520m:       DMESG-WARN (fdo#106084) -> PASS

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

  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#104699 https://bugs.freedesktop.org/show_bug.cgi?id=104699
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#106084 https://bugs.freedesktop.org/show_bug.cgi?id=106084
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103


== Participating hosts (40 -> 36) ==

  Missing    (4): fi-byt-j1900 fi-ctg-p8600 fi-ilk-m540 fi-skl-6700hq 


== Build changes ==

    * Linux: CI_DRM_4149 -> Patchwork_8913

  CI_DRM_4149: 6c2ec0dee7d19b798a1de1101175f5a076549cd9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8913: 9b6426113ebfc460ec7f1750c4d3040e8024024e @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit


== Linux commits ==

9b6426113ebf drm/i915/selftests: Flush GPU activity before completing live_contexts
e6fcfe99f6ef drm/i915/selftests: Refactor common flush_test()

== Logs ==

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

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

* ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
  2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
                   ` (2 preceding siblings ...)
  2018-05-05  9:43 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-05-05 10:31 ` Patchwork
  2018-05-08 11:39 ` [PATCH 1/2] " Mika Kuoppala
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2018-05-05 10:31 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915/selftests: Refactor common flush_test()
URL   : https://patchwork.freedesktop.org/series/42715/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4149_full -> Patchwork_8913_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_8913_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_8913_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://patchwork.freedesktop.org/api/1.0/series/42715/revisions/1/mbox/

== Possible new issues ==

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

  === IGT changes ===

    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-bsd1:
      shard-kbl:          SKIP -> PASS

    igt@gem_mocs_settings@mocs-rc6-vebox:
      shard-kbl:          PASS -> SKIP

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-apl:          PASS -> INCOMPLETE (fdo#103927)

    igt@gem_softpin@noreloc-s3:
      shard-kbl:          PASS -> DMESG-WARN (fdo#103313)

    igt@kms_flip@2x-dpms-vs-vblank-race:
      shard-hsw:          PASS -> FAIL (fdo#103060)

    igt@kms_flip@2x-plain-flip-fb-recreate-interruptible:
      shard-hsw:          PASS -> FAIL (fdo#100368)

    igt@kms_flip@flip-vs-blocking-wf-vblank:
      shard-glk:          PASS -> FAIL (fdo#100368)

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          PASS -> FAIL (fdo#102887, fdo#105363)

    igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
      shard-kbl:          PASS -> DMESG-WARN (fdo#105602, fdo#103558) +34

    igt@kms_vblank@pipe-c-ts-continuation-suspend:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    
    ==== Possible fixes ====

    igt@kms_flip@absolute-wf_vblank-interruptible:
      shard-glk:          FAIL (fdo#106087) -> PASS

    igt@kms_setmode@basic:
      shard-glk:          FAIL (fdo#99912) -> PASS

    igt@prime_vgem@basic-fence-flip:
      shard-kbl:          DMESG-WARN (fdo#106247) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103313 https://bugs.freedesktop.org/show_bug.cgi?id=103313
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#106087 https://bugs.freedesktop.org/show_bug.cgi?id=106087
  fdo#106247 https://bugs.freedesktop.org/show_bug.cgi?id=106247
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (6 -> 6) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4149 -> Patchwork_8913

  CI_DRM_4149: 6c2ec0dee7d19b798a1de1101175f5a076549cd9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4461: f772d9a910130b3aec8efa4f09ed723618fae656 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_8913: 9b6426113ebfc460ec7f1750c4d3040e8024024e @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4461: 55207ea5154dfaa6d2c128124c50e3be4f9b6440 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

* Re: [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts
  2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
@ 2018-05-08 10:46   ` Chris Wilson
  2018-05-08 11:38   ` Mika Kuoppala
  1 sibling, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2018-05-08 10:46 UTC (permalink / raw)
  To: intel-gfx

Quoting Chris Wilson (2018-05-05 10:10:14)
> igt_ctx_exec() expects that we retire all active requests/objects before
> completing, so that when we clean up the files afterwards they are ready
> to be freed. Before we do so, it is then prudent to ensure that we have
> indeed retired the GPU activity, raising an error if it fails. If we do
> not, we run the risk of triggering an assertion when freeing the object:
> 
>   __i915_gem_free_objects:4793 GEM_BUG_ON(i915_gem_object_is_active(obj))
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---

Ping?

>  drivers/gpu/drm/i915/selftests/i915_gem_context.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> index 7ecaed50d0b9..ddb03f009232 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> @@ -23,6 +23,7 @@
>   */
>  
>  #include "../i915_selftest.h"
> +#include "igt_flush_test.h"
>  
>  #include "mock_drm.h"
>  #include "huge_gem_object.h"
> @@ -411,6 +412,8 @@ static int igt_ctx_exec(void *arg)
>         }
>  
>  out_unlock:
> +       if (igt_flush_test(i915, I915_WAIT_LOCKED))
> +               err = -EIO;
>         mutex_unlock(&i915->drm.struct_mutex);
>  
>         mock_file_free(i915, file);
> -- 
> 2.17.0
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts
  2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
  2018-05-08 10:46   ` Chris Wilson
@ 2018-05-08 11:38   ` Mika Kuoppala
  2018-05-08 11:45     ` Chris Wilson
  1 sibling, 1 reply; 9+ messages in thread
From: Mika Kuoppala @ 2018-05-08 11:38 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

Chris Wilson <chris@chris-wilson.co.uk> writes:

> igt_ctx_exec() expects that we retire all active requests/objects before
> completing, so that when we clean up the files afterwards they are ready
> to be freed. Before we do so, it is then prudent to ensure that we have
> indeed retired the GPU activity, raising an error if it fails. If we do
> not, we run the risk of triggering an assertion when freeing the object:
>
>   __i915_gem_free_objects:4793 GEM_BUG_ON(i915_gem_object_is_active(obj))
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/selftests/i915_gem_context.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_gem_context.c b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> index 7ecaed50d0b9..ddb03f009232 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_gem_context.c
> @@ -23,6 +23,7 @@
>   */
>  
>  #include "../i915_selftest.h"
> +#include "igt_flush_test.h"
>  
>  #include "mock_drm.h"
>  #include "huge_gem_object.h"
> @@ -411,6 +412,8 @@ static int igt_ctx_exec(void *arg)
>  	}
>  
>  out_unlock:
> +	if (igt_flush_test(i915, I915_WAIT_LOCKED))
> +		err = -EIO;
>  	mutex_unlock(&i915->drm.struct_mutex);
>  
>  	mock_file_free(i915, file);
> -- 
> 2.17.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 1/2] drm/i915/selftests: Refactor common flush_test()
  2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
                   ` (3 preceding siblings ...)
  2018-05-05 10:31 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-05-08 11:39 ` Mika Kuoppala
  4 siblings, 0 replies; 9+ messages in thread
From: Mika Kuoppala @ 2018-05-08 11:39 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx

Chris Wilson <chris@chris-wilson.co.uk> writes:

> Pull igt_flush_test() out into its own library before copying and
> pasting the code for a third time.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/Makefile                 |  3 +-
>  .../gpu/drm/i915/selftests/igt_flush_test.c   | 64 +++++++++++++++++
>  .../gpu/drm/i915/selftests/igt_flush_test.h   | 14 ++++
>  .../gpu/drm/i915/selftests/intel_hangcheck.c  | 66 ++----------------
>  drivers/gpu/drm/i915/selftests/intel_lrc.c    | 68 ++-----------------
>  5 files changed, 93 insertions(+), 122 deletions(-)
>  create mode 100644 drivers/gpu/drm/i915/selftests/igt_flush_test.c
>  create mode 100644 drivers/gpu/drm/i915/selftests/igt_flush_test.h
>
> diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
> index 00c13382b008..4c6adae23e18 100644
> --- a/drivers/gpu/drm/i915/Makefile
> +++ b/drivers/gpu/drm/i915/Makefile
> @@ -158,7 +158,8 @@ i915-y += dvo_ch7017.o \
>  i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
>  i915-$(CONFIG_DRM_I915_SELFTEST) += \
>  	selftests/i915_random.o \
> -	selftests/i915_selftest.o
> +	selftests/i915_selftest.o \
> +	selftests/igt_flush_test.o
>  
>  # virtual gpu code
>  i915-y += i915_vgpu.o
> diff --git a/drivers/gpu/drm/i915/selftests/igt_flush_test.c b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
> new file mode 100644
> index 000000000000..abff2f04ea84
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/selftests/igt_flush_test.c
> @@ -0,0 +1,64 @@
> +/*
> + * SPDX-License-Identifier: MIT
> + *
> + * Copyright © 2018 Intel Corporation
> + */
> +
> +#include "../i915_drv.h"
> +
> +#include "../i915_selftest.h"
> +#include "igt_flush_test.h"
> +
> +struct wedge_me {
> +	struct delayed_work work;
> +	struct drm_i915_private *i915;
> +	const void *symbol;
> +};
> +
> +static void wedge_me(struct work_struct *work)
> +{
> +	struct wedge_me *w = container_of(work, typeof(*w), work.work);
> +
> +	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
> +
> +	GEM_TRACE("%pS timed out.\n", w->symbol);
> +	GEM_TRACE_DUMP();
> +
> +	i915_gem_set_wedged(w->i915);
> +}
> +
> +static void __init_wedge(struct wedge_me *w,
> +			 struct drm_i915_private *i915,
> +			 long timeout,
> +			 const void *symbol)
> +{
> +	w->i915 = i915;
> +	w->symbol = symbol;
> +
> +	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
> +	schedule_delayed_work(&w->work, timeout);
> +}
> +
> +static void __fini_wedge(struct wedge_me *w)
> +{
> +	cancel_delayed_work_sync(&w->work);
> +	destroy_delayed_work_on_stack(&w->work);
> +	w->i915 = NULL;
> +}
> +
> +#define wedge_on_timeout(W, DEV, TIMEOUT)				\
> +	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
> +	     (W)->i915;							\
> +	     __fini_wedge((W)))
> +
> +int igt_flush_test(struct drm_i915_private *i915, unsigned int flags)
> +{
> +	struct wedge_me w;
> +
> +	cond_resched();
> +
> +	wedge_on_timeout(&w, i915, HZ)
> +		i915_gem_wait_for_idle(i915, flags);
> +
> +	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
> +}
> diff --git a/drivers/gpu/drm/i915/selftests/igt_flush_test.h b/drivers/gpu/drm/i915/selftests/igt_flush_test.h
> new file mode 100644
> index 000000000000..63e009927c43
> --- /dev/null
> +++ b/drivers/gpu/drm/i915/selftests/igt_flush_test.h
> @@ -0,0 +1,14 @@
> +/*
> + * SPDX-License-Identifier: MIT
> + *
> + * Copyright © 2018 Intel Corporation
> + */
> +
> +#ifndef IGT_FLUSH_TEST_H
> +#define IGT_FLUSH_TEST_H
> +
> +struct drm_i915_private;
> +
> +int igt_flush_test(struct drm_i915_private *i915, unsigned int flags);
> +
> +#endif /* IGT_FLUSH_TEST_H */
> diff --git a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
> index c61bf65454a9..438e0b045a2c 100644
> --- a/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
> +++ b/drivers/gpu/drm/i915/selftests/intel_hangcheck.c
> @@ -26,6 +26,7 @@
>  
>  #include "../i915_selftest.h"
>  #include "i915_random.h"
> +#include "igt_flush_test.h"
>  
>  #include "mock_context.h"
>  #include "mock_drm.h"
> @@ -253,61 +254,6 @@ static u32 hws_seqno(const struct hang *h, const struct i915_request *rq)
>  	return READ_ONCE(h->seqno[rq->fence.context % (PAGE_SIZE/sizeof(u32))]);
>  }
>  
> -struct wedge_me {
> -	struct delayed_work work;
> -	struct drm_i915_private *i915;
> -	const void *symbol;
> -};
> -
> -static void wedge_me(struct work_struct *work)
> -{
> -	struct wedge_me *w = container_of(work, typeof(*w), work.work);
> -
> -	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
> -
> -	GEM_TRACE("%pS timed out.\n", w->symbol);
> -	GEM_TRACE_DUMP();
> -
> -	i915_gem_set_wedged(w->i915);
> -}
> -
> -static void __init_wedge(struct wedge_me *w,
> -			 struct drm_i915_private *i915,
> -			 long timeout,
> -			 const void *symbol)
> -{
> -	w->i915 = i915;
> -	w->symbol = symbol;
> -
> -	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
> -	schedule_delayed_work(&w->work, timeout);
> -}
> -
> -static void __fini_wedge(struct wedge_me *w)
> -{
> -	cancel_delayed_work_sync(&w->work);
> -	destroy_delayed_work_on_stack(&w->work);
> -	w->i915 = NULL;
> -}
> -
> -#define wedge_on_timeout(W, DEV, TIMEOUT)				\
> -	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
> -	     (W)->i915;							\
> -	     __fini_wedge((W)))
> -
> -static noinline int
> -flush_test(struct drm_i915_private *i915, unsigned int flags)
> -{
> -	struct wedge_me w;
> -
> -	cond_resched();
> -
> -	wedge_on_timeout(&w, i915, HZ)
> -		i915_gem_wait_for_idle(i915, flags);
> -
> -	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
> -}
> -
>  static void hang_fini(struct hang *h)
>  {
>  	*h->batch = MI_BATCH_BUFFER_END;
> @@ -321,7 +267,7 @@ static void hang_fini(struct hang *h)
>  
>  	kernel_context_close(h->ctx);
>  
> -	flush_test(h->i915, I915_WAIT_LOCKED);
> +	igt_flush_test(h->i915, I915_WAIT_LOCKED);
>  }
>  
>  static bool wait_until_running(struct hang *h, struct i915_request *rq)
> @@ -575,7 +521,7 @@ static int __igt_reset_engine(struct drm_i915_private *i915, bool active)
>  		if (err)
>  			break;
>  
> -		err = flush_test(i915, 0);
> +		err = igt_flush_test(i915, 0);
>  		if (err)
>  			break;
>  	}
> @@ -874,7 +820,7 @@ static int __igt_reset_engines(struct drm_i915_private *i915,
>  		if (err)
>  			break;
>  
> -		err = flush_test(i915, 0);
> +		err = igt_flush_test(i915, 0);
>  		if (err)
>  			break;
>  	}
> @@ -1168,7 +1114,7 @@ static int igt_reset_queue(void *arg)
>  
>  		i915_request_put(prev);
>  
> -		err = flush_test(i915, I915_WAIT_LOCKED);
> +		err = igt_flush_test(i915, I915_WAIT_LOCKED);
>  		if (err)
>  			break;
>  	}
> @@ -1280,7 +1226,7 @@ int intel_hangcheck_live_selftests(struct drm_i915_private *i915)
>  	err = i915_subtests(tests, i915);
>  
>  	mutex_lock(&i915->drm.struct_mutex);
> -	flush_test(i915, I915_WAIT_LOCKED);
> +	igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  
>  	i915_modparams.enable_hangcheck = saved_hangcheck;
> diff --git a/drivers/gpu/drm/i915/selftests/intel_lrc.c b/drivers/gpu/drm/i915/selftests/intel_lrc.c
> index b7460b5dd4f7..1b8a07125150 100644
> --- a/drivers/gpu/drm/i915/selftests/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/selftests/intel_lrc.c
> @@ -5,6 +5,7 @@
>   */
>  
>  #include "../i915_selftest.h"
> +#include "igt_flush_test.h"
>  
>  #include "mock_context.h"
>  
> @@ -168,61 +169,6 @@ static u32 hws_seqno(const struct spinner *spin, const struct i915_request *rq)
>  	return READ_ONCE(*seqno);
>  }
>  
> -struct wedge_me {
> -	struct delayed_work work;
> -	struct drm_i915_private *i915;
> -	const void *symbol;
> -};
> -
> -static void wedge_me(struct work_struct *work)
> -{
> -	struct wedge_me *w = container_of(work, typeof(*w), work.work);
> -
> -	pr_err("%pS timed out, cancelling all further testing.\n", w->symbol);
> -
> -	GEM_TRACE("%pS timed out.\n", w->symbol);
> -	GEM_TRACE_DUMP();
> -
> -	i915_gem_set_wedged(w->i915);
> -}
> -
> -static void __init_wedge(struct wedge_me *w,
> -			 struct drm_i915_private *i915,
> -			 long timeout,
> -			 const void *symbol)
> -{
> -	w->i915 = i915;
> -	w->symbol = symbol;
> -
> -	INIT_DELAYED_WORK_ONSTACK(&w->work, wedge_me);
> -	schedule_delayed_work(&w->work, timeout);
> -}
> -
> -static void __fini_wedge(struct wedge_me *w)
> -{
> -	cancel_delayed_work_sync(&w->work);
> -	destroy_delayed_work_on_stack(&w->work);
> -	w->i915 = NULL;
> -}
> -
> -#define wedge_on_timeout(W, DEV, TIMEOUT)				\
> -	for (__init_wedge((W), (DEV), (TIMEOUT), __builtin_return_address(0)); \
> -	     (W)->i915;							\
> -	     __fini_wedge((W)))
> -
> -static noinline int
> -flush_test(struct drm_i915_private *i915, unsigned int flags)
> -{
> -	struct wedge_me w;
> -
> -	cond_resched();
> -
> -	wedge_on_timeout(&w, i915, HZ)
> -		i915_gem_wait_for_idle(i915, flags);
> -
> -	return i915_terminally_wedged(&i915->gpu_error) ? -EIO : 0;
> -}
> -
>  static void spinner_end(struct spinner *spin)
>  {
>  	*spin->batch = MI_BATCH_BUFFER_END;
> @@ -295,7 +241,7 @@ static int live_sanitycheck(void *arg)
>  		}
>  
>  		spinner_end(&spin);
> -		if (flush_test(i915, I915_WAIT_LOCKED)) {
> +		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
>  			err = -EIO;
>  			goto err_ctx;
>  		}
> @@ -307,7 +253,7 @@ static int live_sanitycheck(void *arg)
>  err_spin:
>  	spinner_fini(&spin);
>  err_unlock:
> -	flush_test(i915, I915_WAIT_LOCKED);
> +	igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  	return err;
>  }
> @@ -380,7 +326,7 @@ static int live_preempt(void *arg)
>  
>  		spinner_end(&spin_hi);
>  		spinner_end(&spin_lo);
> -		if (flush_test(i915, I915_WAIT_LOCKED)) {
> +		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
>  			err = -EIO;
>  			goto err_ctx_lo;
>  		}
> @@ -396,7 +342,7 @@ static int live_preempt(void *arg)
>  err_spin_hi:
>  	spinner_fini(&spin_hi);
>  err_unlock:
> -	flush_test(i915, I915_WAIT_LOCKED);
> +	igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  	return err;
>  }
> @@ -470,7 +416,7 @@ static int live_late_preempt(void *arg)
>  
>  		spinner_end(&spin_hi);
>  		spinner_end(&spin_lo);
> -		if (flush_test(i915, I915_WAIT_LOCKED)) {
> +		if (igt_flush_test(i915, I915_WAIT_LOCKED)) {
>  			err = -EIO;
>  			goto err_ctx_lo;
>  		}
> @@ -486,7 +432,7 @@ static int live_late_preempt(void *arg)
>  err_spin_hi:
>  	spinner_fini(&spin_hi);
>  err_unlock:
> -	flush_test(i915, I915_WAIT_LOCKED);
> +	igt_flush_test(i915, I915_WAIT_LOCKED);
>  	mutex_unlock(&i915->drm.struct_mutex);
>  	return err;
>  
> -- 
> 2.17.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts
  2018-05-08 11:38   ` Mika Kuoppala
@ 2018-05-08 11:45     ` Chris Wilson
  0 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2018-05-08 11:45 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx

Quoting Mika Kuoppala (2018-05-08 12:38:40)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > igt_ctx_exec() expects that we retire all active requests/objects before
> > completing, so that when we clean up the files afterwards they are ready
> > to be freed. Before we do so, it is then prudent to ensure that we have
> > indeed retired the GPU activity, raising an error if it fails. If we do
> > not, we run the risk of triggering an assertion when freeing the object:
> >
> >   __i915_gem_free_objects:4793 GEM_BUG_ON(i915_gem_object_is_active(obj))
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> 
> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

Much appreciated; those purple CI blobs kept worrying me. "I thought I
fixed this already!" ;)

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

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

end of thread, other threads:[~2018-05-08 11:45 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-05  9:10 [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Chris Wilson
2018-05-05  9:10 ` [PATCH 2/2] drm/i915/selftests: Flush GPU activity before completing live_contexts Chris Wilson
2018-05-08 10:46   ` Chris Wilson
2018-05-08 11:38   ` Mika Kuoppala
2018-05-08 11:45     ` Chris Wilson
2018-05-05  9:28 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915/selftests: Refactor common flush_test() Patchwork
2018-05-05  9:43 ` ✓ Fi.CI.BAT: success " Patchwork
2018-05-05 10:31 ` ✓ Fi.CI.IGT: " Patchwork
2018-05-08 11:39 ` [PATCH 1/2] " Mika Kuoppala

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.