[Intel-gfx] [PATCH i-g-t 1/2] igt: Move read_rc6_residency function to lib

Ewelina Musial ewelina.musial at intel.com
Tue Jul 25 15:26:08 UTC 2017


Gem_mocs_settings and pm_rc6_residency tests are defining
the same functionality to read residency from sysfs.
Moving that function to lib/igt_aux and updating tests.

Signed-off-by: Ewelina Musial <ewelina.musial at intel.com>
---
 lib/igt_aux.c             |  8 ++++++++
 lib/igt_aux.h             |  5 +++++
 tests/gem_mocs_settings.c | 10 ++--------
 tests/pm_rc6_residency.c  | 19 ++++---------------
 4 files changed, 19 insertions(+), 23 deletions(-)

diff --git a/lib/igt_aux.c b/lib/igt_aux.c
index 86a213c2..224da4b6 100644
--- a/lib/igt_aux.c
+++ b/lib/igt_aux.c
@@ -1680,3 +1680,11 @@ double igt_stop_siglatency(struct igt_mean *result)
 
 	return mean;
 }
+
+uint32_t read_residency(int dir, const char *name)
+{
+	char path[128];
+
+	sprintf(path, "power/%s_residency_ms", name);
+	return igt_sysfs_get_u32(dir, path);
+}
diff --git a/lib/igt_aux.h b/lib/igt_aux.h
index 499a1679..8cc06f8c 100644
--- a/lib/igt_aux.h
+++ b/lib/igt_aux.h
@@ -386,4 +386,9 @@ static inline bool igt_list_empty(const struct igt_list *list)
 	     &pos->member != (head);					\
 	     pos = tmp, tmp = igt_list_next_entry(pos, member))
 
+/**
+ * Helper to read RC6 and MC6 residencies from sysfs
+ */
+uint32_t read_residency(int dir, const char *name);
+
 #endif /* IGT_AUX_H */
diff --git a/tests/gem_mocs_settings.c b/tests/gem_mocs_settings.c
index 05dfc637..67a52f50 100644
--- a/tests/gem_mocs_settings.c
+++ b/tests/gem_mocs_settings.c
@@ -328,12 +328,6 @@ static void check_l3cc_registers(int fd,
 	gem_close(fd, dst_handle);
 }
 
-
-static uint32_t rc6_residency(int dir)
-{
-	return igt_sysfs_get_u32(dir, "power/rc6_residency_ms");
-}
-
 static void rc6_wait(int fd)
 {
 	int sysfs;
@@ -342,8 +336,8 @@ static void rc6_wait(int fd)
 	sysfs = igt_sysfs_open(fd, NULL);
 	igt_assert_lte(0, sysfs);
 
-	residency = rc6_residency(sysfs);
-	igt_require(igt_wait(rc6_residency(sysfs) != residency, 10000, 2));
+	residency = read_residency(sysfs, "rc6");
+	igt_require(igt_wait(read_residency(sysfs, "rc6") != residency, 10000, 2));
 
 	close(sysfs);
 }
diff --git a/tests/pm_rc6_residency.c b/tests/pm_rc6_residency.c
index bdb9747a..ac6e019a 100644
--- a/tests/pm_rc6_residency.c
+++ b/tests/pm_rc6_residency.c
@@ -61,17 +61,6 @@ static unsigned long get_rc6_enabled_mask(void)
 	return rc6_mask;
 }
 
-static unsigned long read_rc6_residency(const char *name)
-{
-	unsigned long residency;
-	char path[128];
-
-	residency = 0;
-	sprintf(path, "power/%s_residency_ms", name);
-	igt_assert(igt_sysfs_scanf(sysfs, path, "%lu", &residency) == 1);
-	return residency;
-}
-
 static void residency_accuracy(unsigned int diff,
 			       unsigned int duration,
 			       const char *name_of_rc6_residency)
@@ -90,17 +79,17 @@ static void read_residencies(int devid, unsigned int rc6_mask,
 			     struct residencies *res)
 {
 	if (rc6_mask & RC6_ENABLED)
-		res->rc6 = read_rc6_residency("rc6");
+		res->rc6 = read_residency(sysfs, "rc6");
 
 	if ((rc6_mask & RC6_ENABLED) &&
 	    (IS_VALLEYVIEW(devid) || IS_CHERRYVIEW(devid)))
-		res->media_rc6 = read_rc6_residency("media_rc6");
+		res->media_rc6 = read_residency(sysfs, "media_rc6");
 
 	if (rc6_mask & RC6P_ENABLED)
-		res->rc6p = read_rc6_residency("rc6p");
+		res->rc6p = read_residency(sysfs, "rc6p");
 
 	if (rc6_mask & RC6PP_ENABLED)
-		res->rc6pp = read_rc6_residency("rc6pp");
+		res->rc6pp = read_residency(sysfs, "rc6pp");
 }
 
 static unsigned long gettime_ms(void)
-- 
2.13.3



More information about the Intel-gfx mailing list