diff mbox series

[i-g-t] i915/gem_exec_balancer: Check for bonding support before exercising

Message ID 20200331103623.859601-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [i-g-t] i915/gem_exec_balancer: Check for bonding support before exercising | expand

Commit Message

Chris Wilson March 31, 2020, 10:36 a.m. UTC
Don't bother trying and failing to test bonding if the kernel doesn't
even support it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Andi Shyti <andi.shyti@intel.com>
---
 tests/i915/gem_exec_balancer.c | 34 +++++++++++++++++++++++++++-------
 1 file changed, 27 insertions(+), 7 deletions(-)

Comments

Tvrtko Ursulin April 1, 2020, 2:12 p.m. UTC | #1
On 31/03/2020 11:36, Chris Wilson wrote:
> Don't bother trying and failing to test bonding if the kernel doesn't
> even support it.
> 
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Andi Shyti <andi.shyti@intel.com>
> ---
>   tests/i915/gem_exec_balancer.c | 34 +++++++++++++++++++++++++++-------
>   1 file changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
> index da8aff6de..9930e394d 100644
> --- a/tests/i915/gem_exec_balancer.c
> +++ b/tests/i915/gem_exec_balancer.c
> @@ -1936,6 +1936,22 @@ static bool has_load_balancer(int i915)
>   	return err == 0;
>   }
>   
> +static bool has_bonding(int i915)
> +{
> +	I915_DEFINE_CONTEXT_ENGINES_BOND(bonds, 0) = {
> +		.base.name = I915_CONTEXT_ENGINES_EXT_BOND,
> +	};

Doh why do we allow zero bonds.. to make for an easier probe of course! :))

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko

> +	struct i915_engine_class_instance ci = {};
> +	uint32_t ctx;
> +	int err;
> +
> +	ctx = gem_context_create(i915);
> +	err = __set_load_balancer(i915, ctx, &ci, 1, &bonds);
> +	gem_context_destroy(i915, ctx);
> +
> +	return err == 0;
> +}
> +
>   igt_main
>   {
>   	int i915 = -1;
> @@ -1992,11 +2008,18 @@ igt_main
>   	igt_subtest("smoke")
>   		smoketest(i915, 20);
>   
> -	igt_subtest("bonded-imm")
> -		bonded(i915, 0);
> +	igt_subtest_group {
> +		igt_fixture igt_require(has_bonding(i915));
> +
> +		igt_subtest("bonded-imm")
> +			bonded(i915, 0);
> +
> +		igt_subtest("bonded-cork")
> +			bonded(i915, CORK);
>   
> -	igt_subtest("bonded-cork")
> -		bonded(i915, CORK);
> +		igt_subtest("bonded-early")
> +			bonded_early(i915);
> +	}
>   
>   	igt_subtest("bonded-slice")
>   		bonded_slice(i915);
> @@ -2007,9 +2030,6 @@ igt_main
>   	igt_subtest("bonded-semaphore")
>   		bonded_semaphore(i915);
>   
> -	igt_subtest("bonded-early")
> -		bonded_early(i915);
> -
>   	igt_fixture {
>   		igt_stop_hang_detector();
>   	}
>
diff mbox series

Patch

diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index da8aff6de..9930e394d 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -1936,6 +1936,22 @@  static bool has_load_balancer(int i915)
 	return err == 0;
 }
 
+static bool has_bonding(int i915)
+{
+	I915_DEFINE_CONTEXT_ENGINES_BOND(bonds, 0) = {
+		.base.name = I915_CONTEXT_ENGINES_EXT_BOND,
+	};
+	struct i915_engine_class_instance ci = {};
+	uint32_t ctx;
+	int err;
+
+	ctx = gem_context_create(i915);
+	err = __set_load_balancer(i915, ctx, &ci, 1, &bonds);
+	gem_context_destroy(i915, ctx);
+
+	return err == 0;
+}
+
 igt_main
 {
 	int i915 = -1;
@@ -1992,11 +2008,18 @@  igt_main
 	igt_subtest("smoke")
 		smoketest(i915, 20);
 
-	igt_subtest("bonded-imm")
-		bonded(i915, 0);
+	igt_subtest_group {
+		igt_fixture igt_require(has_bonding(i915));
+
+		igt_subtest("bonded-imm")
+			bonded(i915, 0);
+
+		igt_subtest("bonded-cork")
+			bonded(i915, CORK);
 
-	igt_subtest("bonded-cork")
-		bonded(i915, CORK);
+		igt_subtest("bonded-early")
+			bonded_early(i915);
+	}
 
 	igt_subtest("bonded-slice")
 		bonded_slice(i915);
@@ -2007,9 +2030,6 @@  igt_main
 	igt_subtest("bonded-semaphore")
 		bonded_semaphore(i915);
 
-	igt_subtest("bonded-early")
-		bonded_early(i915);
-
 	igt_fixture {
 		igt_stop_hang_detector();
 	}