[igt-dev] [PATCH 3/3] i915/sysfs_preempt_timeout: Update test to work with GuC submission

Matthew Brost matthew.brost at intel.com
Tue Oct 5 16:47:46 UTC 2021


Increase reset timeout as resets can take a bit longer with GuC
submission because an error capture is done and with a large GuC log (16
MB) these take a while.

Don't run 'off' section as with GuC submission we don't handle
dynamically changing the preemption timeout from 'off' to 'on' on a
currently running context. This is not bug in GuC submission rather an
architectural decision to not implement this as there is no user aside
from IGTs. We don't run this section on any gen12+ platforms as we
assume GuC submission on these platforms.

v2:
 (Tvrtko)
  - Update comment why we are skipping the 'off' section

Reviewed-by: John Harrison <John.C.Harrison at Intel.com>
Signed-off-by: Matthew Brost <matthew.brost at intel.com>
---
 tests/i915/sysfs_preempt_timeout.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/i915/sysfs_preempt_timeout.c b/tests/i915/sysfs_preempt_timeout.c
index d176ae72e..515038281 100644
--- a/tests/i915/sysfs_preempt_timeout.c
+++ b/tests/i915/sysfs_preempt_timeout.c
@@ -29,6 +29,7 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "igt.h"
 #include "igt_params.h"
 #include "drmtest.h"
 #include "i915/gem.h"
@@ -41,7 +42,7 @@
 #include "sw_sync.h"
 
 #define ATTR "preempt_timeout_ms"
-#define RESET_TIMEOUT 50 /* milliseconds, at least one jiffie for kworker */
+#define RESET_TIMEOUT 1000 /* milliseconds, at long enough for an error capture */
 
 static bool __enable_hangcheck(int dir, bool state)
 {
@@ -254,6 +255,14 @@ static void test_off(int i915, int engine)
 	gem_quiescent_gpu(i915);
 	igt_require(enable_hangcheck(i915, false));
 
+	/*
+	 * Not a supported behavior for GuC enabled platforms, assume GuC
+	 * submission on gen12+. This isn't strickly true, e.g. TGL does not use
+	 * GuC submission, but we are not really losing coverage as this test
+	 * isn't not a UMD use case.
+	 */
+	igt_require(intel_gen(intel_get_drm_devid(i915)) < 12);
+
 	igt_assert(igt_sysfs_scanf(engine, "class", "%u", &class) == 1);
 	igt_assert(igt_sysfs_scanf(engine, "instance", "%u", &inst) == 1);
 
-- 
2.32.0



More information about the igt-dev mailing list