[igt-dev] [PATCH i-g-t v3 1/1] i915_pm_rpm: gem-execbuf-stress-extra-wait faster

Caz Yokoyama caz.yokoyama at intel.com
Thu Mar 14 00:46:08 UTC 2019


Replace (5sec * 10) delay by forcing to suspended state.
While this patch expects a corresponding patch in drm-tip,
the test runs successful without the corresponding patch.
Its runtime is 2-3 sec on my local machine, nuc.

Signed-off-by: Caz Yokoyama <caz.yokoyama at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
---
 lib/igt_debugfs.h        |  7 +++++++
 tests/i915/i915_pm_rpm.c | 11 ++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index b9cf0f81..9fa38b42 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -216,6 +216,13 @@ void igt_require_hpd_storm_ctl(int fd);
 		  DROP_FREED | \
 		  DROP_IDLE)
 
+/**
+ * DROP_SUSPEND:
+ *
+ * force to suspended state.
+ */
+#define DROP_SUSPEND 0x200
+
 void igt_reset_fifo_underrun_reporting(int drm_fd);
 
 bool igt_drop_caches_has(int fd, uint64_t val);
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index be296f52..e9193114 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -1338,12 +1338,17 @@ static void gem_execbuf_stress_subtest(int rounds, int wait_flags)
 	for (i = 0; i < rounds; i++) {
 		gem_execbuf(drm_fd, &execbuf);
 
-		if (wait_flags & WAIT_STATUS)
+		if (wait_flags & WAIT_STATUS) {
+			/* clean up idle work */
+			igt_drop_caches_set(drm_fd, DROP_IDLE);
 			igt_assert(wait_for_suspended());
+		}
 		if (wait_flags & WAIT_PC8_RES)
 			igt_assert(pc8_plus_residency_changed(30));
-		if (wait_flags & WAIT_EXTRA)
-			sleep(5);
+		if (wait_flags & WAIT_EXTRA) {
+			/* force to suspend state */
+			igt_drop_caches_set(drm_fd, DROP_SUSPEND);
+		}
 	}
 
 	gem_close(drm_fd, handle);
-- 
2.17.1



More information about the igt-dev mailing list