summaryrefslogtreecommitdiff
path: root/tests/perf.c
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2017-08-07 18:12:19 +0100
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2017-08-07 18:52:13 +0100
commitaa60bc6317d7fad7e03e7dce8eaa91068f21d3d2 (patch)
tree714b9e030883dc1971c0d1ad35e88ebc17ac88b7 /tests/perf.c
parentf4f7b700e117993847e3d4cadbaa0ce2b88712bb (diff)
tests/perf: fix userspace configs issues on HSW
We don't have flex eu counters on HSW, so don't try to program for thoses. Reported-by: CI \o/ Fixes: 609cb5e30b4 ("tests/perf: add tests to verify create/destroy userspace configs") Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Diffstat (limited to 'tests/perf.c')
-rw-r--r--tests/perf.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/tests/perf.c b/tests/perf.c
index a7fa33a1..dd2263ee 100644
--- a/tests/perf.c
+++ b/tests/perf.c
@@ -2933,12 +2933,17 @@ test_create_destroy_userspace_config(void)
config.n_mux_regs = 1;
config.mux_regs_ptr = to_user_pointer(mux_regs);
- for (i = 0; i < ARRAY_SIZE(flex_regs) / 2; i++) {
- flex_regs[i * 2] = 0xe458; /* EU_PERF_CNTL0 */
- flex_regs[i * 2 + 1] = 0x0;
+
+ /* Flex EU counters are only available on gen8+ */
+ if (intel_gen(devid) >= 8) {
+ for (i = 0; i < ARRAY_SIZE(flex_regs) / 2; i++) {
+ flex_regs[i * 2] = 0xe458; /* EU_PERF_CNTL0 */
+ flex_regs[i * 2 + 1] = 0x0;
+ }
+ config.flex_regs_ptr = to_user_pointer(flex_regs);
+ config.n_flex_regs = ARRAY_SIZE(flex_regs) / 2;
}
- config.flex_regs_ptr = to_user_pointer(flex_regs);
- config.n_flex_regs = ARRAY_SIZE(flex_regs) / 2;
+
config.n_boolean_regs = 0;
/* Creating configs without permissions shouldn't work. */
@@ -3019,13 +3024,15 @@ test_whitelisted_registers_userspace_config(void)
}
config.boolean_regs_ptr = (uintptr_t) b_counters_regs;
- /* Flex EU registers */
- for (i = 0; i < ARRAY_SIZE(flex); i++) {
- flex_regs[config.n_flex_regs * 2] = flex[i];
- flex_regs[config.n_flex_regs * 2 + 1] = 0;
- config.n_flex_regs++;
+ if (intel_gen(devid) >= 8) {
+ /* Flex EU registers, only from Gen8+. */
+ for (i = 0; i < ARRAY_SIZE(flex); i++) {
+ flex_regs[config.n_flex_regs * 2] = flex[i];
+ flex_regs[config.n_flex_regs * 2 + 1] = 0;
+ config.n_flex_regs++;
+ }
+ config.flex_regs_ptr = (uintptr_t) flex_regs;
}
- config.flex_regs_ptr = (uintptr_t) flex_regs;
/* Mux registers (too many of them, just checking bounds) */
i = 0;