All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH i-g-t 1/4] i915/perf_pmu: Verify RC6 measurements before/after suspend
@ 2020-12-14 10:51 ` Chris Wilson
  0 siblings, 0 replies; 28+ messages in thread
From: Chris Wilson @ 2020-12-14 10:51 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Chris Wilson

RC6 should work before suspend, and continue to increment while idle
after suspend. Should.

v2: Include a longer sleep after suspend; it appears we are reticent to
idle so soon after waking up.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 tests/i915/perf_pmu.c | 28 +++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/tests/i915/perf_pmu.c b/tests/i915/perf_pmu.c
index cb7273142..0b470c1bc 100644
--- a/tests/i915/perf_pmu.c
+++ b/tests/i915/perf_pmu.c
@@ -170,6 +170,7 @@ static unsigned int measured_usleep(unsigned int usec)
 #define TEST_RUNTIME_PM (8)
 #define FLAG_LONG (16)
 #define FLAG_HANG (32)
+#define TEST_S3 (64)
 
 static igt_spin_t * __spin_poll(int fd, uint32_t ctx,
 				const struct intel_execution_engine2 *e)
@@ -1578,7 +1579,7 @@ test_frequency_idle(int gem_fd)
 		     "Actual frequency should be 0 while parked!\n");
 }
 
-static bool wait_for_rc6(int fd)
+static bool wait_for_rc6(int fd, int timeout)
 {
 	struct timespec tv = {};
 	uint64_t start, now;
@@ -1594,7 +1595,7 @@ static bool wait_for_rc6(int fd)
 		now = pmu_read_single(fd);
 		if (now - start > 1e6)
 			return true;
-	} while (!igt_seconds_elapsed(&tv));
+	} while (igt_seconds_elapsed(&tv) <= timeout);
 
 	return false;
 }
@@ -1636,14 +1637,32 @@ test_rc6(int gem_fd, unsigned int flags)
 		}
 	}
 
-	igt_require(wait_for_rc6(fd));
+	igt_require(wait_for_rc6(fd, 1));
 
 	/* While idle check full RC6. */
 	prev = __pmu_read_single(fd, &ts[0]);
 	slept = measured_usleep(duration_ns / 1000);
 	idle = __pmu_read_single(fd, &ts[1]);
+
 	igt_debug("slept=%lu perf=%"PRIu64"\n", slept, ts[1] - ts[0]);
+	assert_within_epsilon(idle - prev, ts[1] - ts[0], tolerance);
+
+	if (flags & TEST_S3) {
+		prev = __pmu_read_single(fd, &ts[0]);
+		igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+					      SUSPEND_TEST_NONE);
+		idle = __pmu_read_single(fd, &ts[1]);
+		igt_debug("suspend=%"PRIu64"\n", ts[1] - ts[0]);
+		//assert_within_epsilon(idle - prev, ts[1] - ts[0], tolerance);
+	}
+
+	igt_assert(wait_for_rc6(fd, 5));
 
+	prev = __pmu_read_single(fd, &ts[0]);
+	slept = measured_usleep(duration_ns / 1000);
+	idle = __pmu_read_single(fd, &ts[1]);
+
+	igt_debug("slept=%lu perf=%"PRIu64"\n", slept, ts[1] - ts[0]);
 	assert_within_epsilon(idle - prev, ts[1] - ts[0], tolerance);
 
 	/* Wake up device and check no RC6. */
@@ -2245,6 +2264,9 @@ igt_main
 	igt_subtest("rc6-runtime-pm-long")
 		test_rc6(fd, TEST_RUNTIME_PM | FLAG_LONG);
 
+	igt_subtest("rc6-suspend")
+		test_rc6(fd, TEST_S3);
+
 	/**
 	 * Check render nodes are counted.
 	 */
-- 
2.29.2

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

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

end of thread, other threads:[~2020-12-14 16:25 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-14 10:51 [Intel-gfx] [PATCH i-g-t 1/4] i915/perf_pmu: Verify RC6 measurements before/after suspend Chris Wilson
2020-12-14 10:51 ` [igt-dev] " Chris Wilson
2020-12-14 10:51 ` [Intel-gfx] [PATCH i-g-t 2/4] i915/gem_exec_balancer: Measure timeslicing fairness Chris Wilson
2020-12-14 10:51   ` [igt-dev] " Chris Wilson
2020-12-14 15:51   ` [Intel-gfx] " Tvrtko Ursulin
2020-12-14 15:51     ` Tvrtko Ursulin
2020-12-14 16:02     ` [Intel-gfx] " Chris Wilson
2020-12-14 10:51 ` [Intel-gfx] [PATCH i-g-t 3/4] i915/gem_shrink: Refactor allocation sizing based on available memory Chris Wilson
2020-12-14 10:51   ` [igt-dev] " Chris Wilson
2020-12-14 15:57   ` [Intel-gfx] " Tvrtko Ursulin
2020-12-14 15:57     ` Tvrtko Ursulin
2020-12-14 16:21     ` [Intel-gfx] " Chris Wilson
2020-12-14 16:21       ` Chris Wilson
2020-12-14 16:24       ` [Intel-gfx] " Chris Wilson
2020-12-14 10:51 ` [Intel-gfx] [PATCH i-g-t 4/4] i915/gem_exec_schedule: Try to spot unfairness Chris Wilson
2020-12-14 10:51   ` [igt-dev] " Chris Wilson
2020-12-14 11:30 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] i915/perf_pmu: Verify RC6 measurements before/after suspend Patchwork
2020-12-14 13:55 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-12-14 15:42 ` [Intel-gfx] [igt-dev] [PATCH i-g-t 1/4] " Tvrtko Ursulin
2020-12-14 15:42   ` Tvrtko Ursulin
2020-12-14 15:49   ` [Intel-gfx] " Chris Wilson
2020-12-14 15:49     ` Chris Wilson
2020-12-14 16:08     ` [Intel-gfx] " Tvrtko Ursulin
2020-12-14 16:08       ` Tvrtko Ursulin
2020-12-14 16:17       ` [Intel-gfx] " Chris Wilson
2020-12-14 16:17         ` Chris Wilson
2020-12-14 16:18         ` [Intel-gfx] " Chris Wilson
2020-12-14 16:18           ` Chris Wilson

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.