[igt-dev] [PATCH i-g-t 81/81] tests/i915/gem_exec_balancer: Add a test for combined balancing and bonding (v2)
From: Jason Ekstrand <hidden>
Date: 2021-07-07 14:47:45
Subsystem:
the rest · Maintainer:
Linus Torvalds
v2 (Jason Ekstrand): - Use __set_param_fresh_context Signed-off-by: Jason Ekstrand <redacted> Reviewed-by: Ashutosh Dixit <redacted> --- tests/i915/gem_exec_balancer.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index 28fc2d33a..40077aced 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c@@ -181,6 +181,7 @@ __set_param_fresh_context(int i915, struct drm_i915_gem_context_param param) static void invalid_balancer(int i915) { I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(balancer, 64); + I915_DEFINE_CONTEXT_ENGINES_BOND(bond, 1); I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 64); struct drm_i915_gem_context_param p = { .param = I915_CONTEXT_PARAM_ENGINES,
@@ -295,6 +296,32 @@ static void invalid_balancer(int i915) igt_assert_eq(__set_param_fresh_context(i915, p), -EFAULT); munmap(ptr + 4096, 4096); + + if (count >= 2) { + /* You can't bond to a balanced engine */ + memset(&bond, 0, sizeof(bond)); + bond.base.name = I915_CONTEXT_ENGINES_EXT_BOND; + bond.master = ci[0]; + bond.virtual_index = 0; + bond.num_bonds = 1; + bond.engines[0] = ci[1]; + + balancer.base.next_extension = to_user_pointer(&bond); + balancer.engine_index = 0; + balancer.num_siblings = count; + memcpy(balancer.engines, ci, count * sizeof(*ci)); + + memset(&engines, 0, sizeof(engines)); + engines.engines[0].engine_class = I915_ENGINE_CLASS_INVALID; + engines.engines[0].engine_instance = I915_ENGINE_CLASS_INVALID_NONE; + engines.extensions = to_user_pointer(&balancer); + + p.size = (sizeof(struct i915_context_param_engines) + + sizeof(*engines.engines)); + + igt_assert_eq(__set_param_fresh_context(i915, p), -EINVAL); + } + free(ci); } }
--
2.31.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev