From 1d31c2c53f048e9469589390dfa0a88d4cfd266d Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Fri, 8 Dec 2017 15:37:25 +0000 Subject: tests/perf: skip config tests on older kernels We mostly run tests on the most recent kernels but those are failing on < 4.14. Signed-off-by: Lionel Landwerlin Reviewed-by: Chris Wilson --- tests/perf.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/perf.c') diff --git a/tests/perf.c b/tests/perf.c index 969b8c74..a173680c 100644 --- a/tests/perf.c +++ b/tests/perf.c @@ -3964,6 +3964,17 @@ static void i915_perf_remove_config(int fd, uint64_t config_id) &config_id), 0); } +static bool has_i915_perf_userspace_config(int fd) +{ + uint64_t config = 0; + int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_REMOVE_CONFIG, &config); + igt_assert_eq(ret, -1); + + igt_debug("errno=%i\n", errno); + + return errno != EINVAL; +} + static void test_invalid_create_userspace_config(void) { @@ -3973,6 +3984,8 @@ test_invalid_create_userspace_config(void) uint32_t mux_regs[] = { 0x9888 /* NOA_WRITE */, 0x0 }; uint32_t invalid_mux_regs[] = { 0x12345678 /* invalid register */, 0x0 }; + igt_require(has_i915_perf_userspace_config(drm_fd)); + memset(&config, 0, sizeof(config)); /* invalid uuid */ @@ -4032,6 +4045,8 @@ test_invalid_remove_userspace_config(void) uint64_t config_id, wrong_config_id = 999999999; char path[512]; + igt_require(has_i915_perf_userspace_config(drm_fd)); + snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid); /* Destroy previous configuration if present */ @@ -4090,6 +4105,8 @@ test_create_destroy_userspace_config(void) }; char path[512]; + igt_require(has_i915_perf_userspace_config(drm_fd)); + snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid); /* Destroy previous configuration if present */ @@ -4170,6 +4187,8 @@ test_whitelisted_registers_userspace_config(void) 0xe65c }; + igt_require(has_i915_perf_userspace_config(drm_fd)); + snprintf(path, sizeof(path), "/sys/class/drm/card%d/metrics/%s/id", card, uuid); if (try_read_u64_file(path, &config_id)) -- cgit v1.2.3