[igt-dev] [RFC v2 13/43] tests/i915/gem_ctx_isolation: use the gem_engine_topology library

Stimson, Dale B dale.b.stimson at intel.com
Fri Jun 28 22:12:03 UTC 2019


For tests/i915/gem_ctx_isolation the changes you have made look good,
but you will also need something like the following:

----------------------------------------------------------------
diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 2001d562..d91d8952 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -812,6 +812,7 @@ static unsigned int __has_context_isolation(int fd)
 igt_main
 {
        unsigned int has_context_isolation = 0;
+       const struct intel_execution_engine2 *e;
        int fd = -1;
        uint16_t devid;
 
@@ -833,8 +834,7 @@ igt_main
                igt_skip_on(gen > LAST_KNOWN_GEN);
        }
 
-       for (const struct intel_execution_engine2 *e = intel_execution_engines2;
-            e->name; e++) {
+       __for_each_physical_engine(fd, e) {
                igt_subtest_group {
                        igt_fixture {
                                igt_require(has_context_isolation & (1 << e->class));
----------------------------------------------------------------


On 2019-06-21 15:33:15, Ramalingam C wrote:
> Date: Fri, 21 Jun 2019 15:33:15 +0530
> From: Ramalingam C <ramalingam.c at intel.com>
> To: igt-dev at lists.freedesktop.org, tvrtko.ursulin at linux.intel.com,
>  andi at etezian.org
> Subject: [igt-dev] [RFC v2 13/43] tests/i915/gem_ctx_isolation: use the
>  gem_engine_topology library
> X-Mailer: git-send-email 2.19.1
> 
> Replace the legacy for_each_engine* defines with the ones
> implemented in the gem_engine_topology library.
> 
> Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> ---
>  tests/i915/gem_ctx_isolation.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
> index 5b054c81d449..47e20403ce1f 100644
> --- a/tests/i915/gem_ctx_isolation.c
> +++ b/tests/i915/gem_ctx_isolation.c
> @@ -556,7 +556,6 @@ static void nonpriv(int fd,
>  		0x0505c0c0,
>  		0xdeadbeef
>  	};
> -	unsigned int engine = e->flags;
>  	unsigned int num_values = ARRAY_SIZE(values);
>  
>  	/* Sigh -- hsw: we need cmdparser access to our own registers! */
> @@ -574,7 +573,7 @@ static void nonpriv(int fd,
>  
>  		tmpl_regs(fd, ctx, e, tmpl, values[v]);
>  
> -		spin = igt_spin_new(fd, .ctx = ctx, .engine = engine);
> +		spin = igt_spin_new(fd, .ctx = ctx, .engine = e->flags);
>  
>  		igt_debug("%s[%d]: Setting all registers to 0x%08x\n",
>  			  __func__, v, values[v]);
> @@ -612,7 +611,6 @@ static void isolation(int fd,
>  		0xaaaaaaaa,
>  		0xdeadbeef
>  	};
> -	unsigned int engine = e->flags;
>  	unsigned int num_values =
>  		flags & (DIRTY1 | DIRTY2) ? ARRAY_SIZE(values) : 1;
>  
> @@ -625,7 +623,7 @@ static void isolation(int fd,
>  		ctx[0] = gem_context_create(fd);
>  		regs[0] = read_regs(fd, ctx[0], e, flags);
>  
> -		spin = igt_spin_new(fd, .ctx = ctx[0], .engine = engine);
> +		spin = igt_spin_new(fd, .ctx = ctx[0], .engine = e->flags);
>  
>  		if (flags & DIRTY1) {
>  			igt_debug("%s[%d]: Setting all registers of ctx 0 to 0x%08x\n",
> @@ -678,11 +676,11 @@ static void isolation(int fd,
>  #define S4 (4 << 8)
>  #define SLEEP_MASK (0xf << 8)
>  
> -static void inject_reset_context(int fd, unsigned int engine)
> +static void inject_reset_context(int fd, const struct intel_execution_engine2 *e)
>  {
>  	struct igt_spin_factory opts = {
>  		.ctx = gem_context_create(fd),
> -		.engine = engine,
> +		.engine = e->flags,
>  		.flags = IGT_SPIN_FAST,
>  	};
>  	igt_spin_t *spin;
> @@ -693,7 +691,7 @@ static void inject_reset_context(int fd, unsigned int engine)
>  	 * HW for screwing up if the context was already broken.
>  	 */
>  
> -	if (gem_can_store_dword(fd, engine))
> +	if (gem_class_can_store_dword(fd, e->class))
>  		opts.flags |= IGT_SPIN_POLL_RUN;
>  
>  	spin = __igt_spin_factory(fd, &opts);
> @@ -723,7 +721,6 @@ static void preservation(int fd,
>  		0xdeadbeef
>  	};
>  	const unsigned int num_values = ARRAY_SIZE(values);
> -	unsigned int engine = e->flags;
>  	uint32_t ctx[num_values +1 ];
>  	uint32_t regs[num_values + 1][2];
>  	igt_spin_t *spin;
> @@ -731,7 +728,7 @@ static void preservation(int fd,
>  	gem_quiescent_gpu(fd);
>  
>  	ctx[num_values] = gem_context_create(fd);
> -	spin = igt_spin_new(fd, .ctx = ctx[num_values], .engine = engine);
> +	spin = igt_spin_new(fd, .ctx = ctx[num_values], .engine = e->flags);
>  	regs[num_values][0] = read_regs(fd, ctx[num_values], e, flags);
>  	for (int v = 0; v < num_values; v++) {
>  		ctx[v] = gem_context_create(fd);
> @@ -744,7 +741,7 @@ static void preservation(int fd,
>  	igt_spin_free(fd, spin);
>  
>  	if (flags & RESET)
> -		inject_reset_context(fd, engine);
> +		inject_reset_context(fd, e);
>  
>  	switch (flags & SLEEP_MASK) {
>  	case NOSLEEP:
> @@ -771,7 +768,7 @@ static void preservation(int fd,
>  		break;
>  	}
>  
> -	spin = igt_spin_new(fd, .ctx = ctx[num_values], .engine = engine);
> +	spin = igt_spin_new(fd, .ctx = ctx[num_values], .engine = e->flags);
>  	for (int v = 0; v < num_values; v++)
>  		regs[v][1] = read_regs(fd, ctx[v], e, flags);
>  	regs[num_values][1] = read_regs(fd, ctx[num_values], e, flags);
> -- 
> 2.19.1
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


More information about the igt-dev mailing list