From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD1E56E99E for ; Thu, 17 Jun 2021 19:16:08 +0000 (UTC) Received: by mail-pf1-x430.google.com with SMTP id k15so621207pfp.6 for ; Thu, 17 Jun 2021 12:16:08 -0700 (PDT) From: Jason Ekstrand Date: Thu, 17 Jun 2021 14:15:16 -0500 Message-Id: <20210617191516.577394-30-jason@jlekstrand.net> In-Reply-To: <20210617191256.577244-1-jason@jlekstrand.net> References: <20210617191256.577244-1-jason@jlekstrand.net> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 79/79] tests/i915/gem_exec_balancer: Add a test for combind balancing and bonding (v2) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: v2 (Jason Ekstrand): - Use __set_param_fresh_context --- 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 0abd20a37..4c9b670f9 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