[Intel-gfx] [PATCH 3/7] tests/pm_rc6_residency: factor out the code to measure residencies

Imre Deak imre.deak at intel.com
Mon May 18 08:35:35 PDT 2015


The upcoming patches will add some additional logic around reading out
the counter values, so factor out the readout code to prepare for those
patches.

No functional change.

Signed-off-by: Imre Deak <imre.deak at intel.com>
---
 tests/pm_rc6_residency.c | 38 +++++++++++++++++++++++++-------------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/tests/pm_rc6_residency.c b/tests/pm_rc6_residency.c
index ed20d3e..14573eb 100644
--- a/tests/pm_rc6_residency.c
+++ b/tests/pm_rc6_residency.c
@@ -38,6 +38,13 @@
 #define SLEEP_DURATION 3000 // in milliseconds
 #define CODE_TIME 50 // in microseconfs
 
+struct residencies {
+	int rc6;
+	int media_rc6;
+	int rc6p;
+	int rc6pp;
+};
+
 static unsigned int readit(const char *path)
 {
 	unsigned int ret;
@@ -102,11 +109,23 @@ static void residency_accuracy(unsigned int diff,
 		     "Sysfs RC6 residency counter is inaccurate.\n");
 }
 
+static void measure_residencies(int devid, struct residencies *res)
+{
+	res->rc6 = read_rc6_residency("rc6");
+	if (IS_VALLEYVIEW(devid) || IS_CHERRYVIEW(devid))
+		res->media_rc6 = read_rc6_residency("media_rc6");
+
+	if (IS_GEN6(devid) || IS_IVYBRIDGE(devid)) {
+		res->rc6p = read_rc6_residency("rc6p");
+		res->rc6pp = read_rc6_residency("rc6pp");
+	}
+}
+
 igt_main
 {
 	int fd;
 	int devid = 0;
-	int rc6, rc6p, rc6pp, media;
+	struct residencies res;
 
 	igt_skip_on_simulation();
 
@@ -116,29 +135,22 @@ igt_main
 		devid = intel_get_drm_devid(fd);
 		close(fd);
 
-		rc6 = read_rc6_residency("rc6");
-		if (IS_VALLEYVIEW(devid) || IS_CHERRYVIEW(devid))
-			media = read_rc6_residency("media_rc6");
-
-		if (IS_GEN6(devid) || IS_IVYBRIDGE(devid)) {
-			rc6p = read_rc6_residency("rc6p");
-			rc6pp = read_rc6_residency("rc6pp");
-		}
+		measure_residencies(devid, &res);
 	}
 
 	igt_subtest("rc6-accuracy")
-		residency_accuracy(rc6, "rc6");
+		residency_accuracy(res.rc6, "rc6");
 	igt_subtest("media-rc6-accuracy")
 		if (IS_VALLEYVIEW(devid) || IS_CHERRYVIEW(devid))
-			residency_accuracy(media, "media_rc6");
+			residency_accuracy(res.media_rc6, "media_rc6");
 	igt_subtest("rc6p-accuracy") {
 		if (!IS_GEN6(devid) && !IS_IVYBRIDGE(devid))
 			igt_skip("This platform doesn't support RC6p\n");
-		residency_accuracy(rc6p, "rc6p");
+		residency_accuracy(res.rc6p, "rc6p");
 	}
 	igt_subtest("rc6pp-accuracy") {
 		if (!IS_GEN6(devid) && !IS_IVYBRIDGE(devid))
 			igt_skip("This platform doesn't support RC6pp\n");
-		residency_accuracy(rc6pp, "rc6pp");
+		residency_accuracy(res.rc6pp, "rc6pp");
 	}
 }
-- 
2.1.4



More information about the Intel-gfx mailing list