[igt-dev] [PATCH i-g-t] tests/i915/gem_exec_balancer: Skip the test if no engines are available
Antonio Argenziano
antonio.argenziano at intel.com
Mon Feb 10 19:39:08 UTC 2020
The test needs to have at least some engines to run, if no engines are
present flag it as a skip rather than have a pass. This patch also fixes
the error check for perf_i915_open().
Signed-off-by: Antonio Argenziano <antonio.argenziano at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
---
tests/i915/gem_exec_balancer.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index 150eba0d..df816feb 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -61,7 +61,7 @@ static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
int fd;
fd = perf_i915_open(i915, I915_PMU_ENGINE_BUSY(class, instance));
- if (fd != -1) {
+ if (fd >= 0) {
close(fd);
return true;
}
@@ -113,6 +113,23 @@ list_engines(int i915, uint32_t class_mask, unsigned int *out)
return engines;
}
+static bool has_engines(int i915)
+{
+ for (int class = 0; class < 32; class++) {
+ struct i915_engine_class_instance *ci;
+ unsigned int count;
+
+ ci = list_engines(i915, 1 << class, &count);
+ if (!ci)
+ continue;
+
+ if (count > 0)
+ return true;
+ }
+
+ return false;
+}
+
static int __set_engines(int i915, uint32_t ctx,
const struct i915_engine_class_instance *ci,
unsigned int count)
@@ -1818,6 +1835,7 @@ igt_main
gem_require_contexts(i915);
igt_require(has_context_engines(i915));
igt_require(has_load_balancer(i915));
+ igt_require(has_engines(i915));
igt_fork_hang_detector(i915);
}
--
2.21.0
More information about the igt-dev
mailing list