[Intel-gfx] [PATCH i-g-t 3/9] lib/perf: Fix data types and general tidy

Tvrtko Ursulin tursulin at ursulin.net
Tue Oct 10 09:30:02 UTC 2017


From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>

Configuration and format are uint64_t in the perf API.

Tidy some other details as well.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
---
 lib/igt_perf.c | 40 +++++++++++++++++++---------------------
 lib/igt_perf.h |  4 ++--
 2 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/lib/igt_perf.c b/lib/igt_perf.c
index 961a858af9e3..208474302fcc 100644
--- a/lib/igt_perf.c
+++ b/lib/igt_perf.c
@@ -9,49 +9,47 @@
 
 uint64_t i915_type_id(void)
 {
-	char buf[1024];
-	int fd, n;
-
-	fd = open("/sys/bus/event_source/devices/i915/type", 0);
-	if (fd < 0) {
-		n = -1;
-	} else {
-		n = read(fd, buf, sizeof(buf)-1);
-		close(fd);
-	}
-	if (n < 0)
+	char buf[64];
+	ssize_t ret;
+	int fd;
+
+	fd = open("/sys/bus/event_source/devices/i915/type", O_RDONLY);
+	if (fd < 0)
+		return 0;
+
+	ret = read(fd, buf, sizeof(buf) - 1);
+	close(fd);
+	if (ret < 1)
 		return 0;
 
-	buf[n] = '\0';
-	return strtoull(buf, 0, 0);
+	buf[ret] = '\0';
+
+	return strtoull(buf, NULL, 0);
 }
 
-static int _perf_open(int config, int group, int format)
+static int _perf_open(uint64_t config, int group, uint64_t format)
 {
-	struct perf_event_attr attr;
-
-	memset(&attr, 0, sizeof (attr));
+	struct perf_event_attr attr = { };
 
 	attr.type = i915_type_id();
 	if (attr.type == 0)
 		return -ENOENT;
 
-	attr.config = config;
-
 	if (group >= 0)
 		format &= ~PERF_FORMAT_GROUP;
 
 	attr.read_format = format;
+	attr.config = config;
 
 	return perf_event_open(&attr, -1, 0, group, 0);
 }
 
-int perf_i915_open(int config)
+int perf_i915_open(uint64_t config)
 {
 	return _perf_open(config, -1, PERF_FORMAT_TOTAL_TIME_ENABLED);
 }
 
-int perf_i915_open_group(int config, int group)
+int perf_i915_open_group(uint64_t config, int group)
 {
 	return _perf_open(config, group,
 			  PERF_FORMAT_TOTAL_TIME_ENABLED | PERF_FORMAT_GROUP);
diff --git a/lib/igt_perf.h b/lib/igt_perf.h
index 8e674c3a3755..cc10cb300aaf 100644
--- a/lib/igt_perf.h
+++ b/lib/igt_perf.h
@@ -62,7 +62,7 @@ perf_event_open(struct perf_event_attr *attr,
 }
 
 uint64_t i915_type_id(void);
-int perf_i915_open(int config);
-int perf_i915_open_group(int config, int group);
+int perf_i915_open(uint64_t config);
+int perf_i915_open_group(uint64_t config, int group);
 
 #endif /* I915_PERF_H */
-- 
2.9.5



More information about the Intel-gfx mailing list