summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2015-03-23 12:49:08 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2015-03-23 12:50:48 -0700
commit392e8ee75fcbc4da7c972aaa03931c22ed8485e4 (patch)
tree703d06fb1c21f79c538025dcf68b3e79188145db
parent1765838e34d96c7eb2288cf899ab19f819fa5cb0 (diff)
tests/pm_rps: add test descriptions
Document a copule of the subtests with their purpose, methods, and expected results. Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r--tests/pm_rps.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/pm_rps.c b/tests/pm_rps.c
index 6289e1bd..697a154f 100644
--- a/tests/pm_rps.c
+++ b/tests/pm_rps.c
@@ -526,6 +526,26 @@ static void stabilize_check(int *freqs)
igt_debug("Waited %d msec to stabilize cur\n", wait);
}
+/*
+ * reset - test that turbo works across a ring stop
+ *
+ * METHOD
+ * Apply a low GPU load, collect the resulting frequencies, then stop
+ * the GPU by stopping the rings. Apply alternating high and low loads
+ * following the restart, comparing against the previous low load freqs
+ * and whether the GPU ramped to max freq successfully. Finally check
+ * that we return to idle at the end.
+ *
+ * EXPECTED RESULTS
+ * Low load freqs match, high load freqs reach max, and GPU returns to
+ * idle at the end.
+ *
+ * FAILURES
+ * Failures here could indicate turbo doesn't work across a ring stop
+ * or that load generation routines don't successfully generate stable
+ * or maximal GPU loads. It could also indicate a thermal limit if the
+ * GPU isn't able to reach its maximum frequency.
+ */
static void reset(void)
{
int pre_freqs[NUMFREQ];
@@ -565,6 +585,27 @@ static void reset(void)
idle_check();
}
+/*
+ * blocking - test that GPU returns to idle after a forced blocking boost
+ * and a low GPU load. Frequencies resulting from the low load are also
+ * expected to match.o
+ *
+ * METHOD
+ * Collect frequencies resulting from a low GPU load and compare with
+ * frequencies collected after a quiesce and a second low load, then
+ * verify idle.
+ *
+ * EXPECTED RESULTS
+ * Frequencies match and GPU successfully returns to idle afterward.
+ *
+ * FAILURES
+ * Failures in this test could be due to several possible bugs:
+ * - load generation creates unstable frequencies, though stabilize_check()
+ * is supposed to catch this
+ * - quiescent_gpu() call does not boost GPU to max freq
+ * - frequency ramp down is too slow, causing second set of collected
+ * frequencies to be higher than the first
+ */
static void blocking(void)
{
int pre_freqs[NUMFREQ];