[Intel-gfx] [i-g-t] igt/gem_reset_stats: Fix pending batches status expectation

Michel Thierry michel.thierry at intel.com
Fri Jun 9 17:54:13 UTC 2017


On 6/9/2017 10:02 AM, Antonio Argenziano wrote:
> Test expects pending batches to be discarded after a reset. That is no
> longer the case. Fixed to expect a normal execution.

You could expand this to say:
after commit 821ed7df6e2a ("drm/i915: Update reset path to fix 
incomplete requests"), that is no longer the case.

> 
> Cc: Michel Thierry <michel.thierry at intel.com>
> 
> Signed-off-by: Antonio Argenziano <antonio.argenziano at intel.com>

If we want the test to pass, then it's ok. Someone else may say we need 
further subtests.

On the basis this brings existing tests to the current expectation,
Reviewed-by: Michel Thierry <michel.thierry at intel.com>

(with the updated commit msg).

-Michel
> ---
>   tests/gem_reset_stats.c | 24 +++++++-----------------
>   1 file changed, 7 insertions(+), 17 deletions(-)
> 
> diff --git a/tests/gem_reset_stats.c b/tests/gem_reset_stats.c
> index c4ce4ac2..73afeeb2 100644
> --- a/tests/gem_reset_stats.c
> +++ b/tests/gem_reset_stats.c
> @@ -239,7 +239,7 @@ static void test_rs(const struct intel_execution_engine *e,
>   		if (i == hang_index)
>   			assert_reset_status(i, fd[i], 0, RS_BATCH_ACTIVE);
>   		if (i > hang_index)
> -			assert_reset_status(i, fd[i], 0, RS_BATCH_PENDING);
> +			assert_reset_status(i, fd[i], 0, RS_NO_ERROR);
>   	}
>   
>   	igt_assert(igt_seconds_elapsed(&ts_injected) <= 30);
> @@ -312,10 +312,10 @@ static void test_rs_ctx(const struct intel_execution_engine *e,
>   						    RS_BATCH_ACTIVE);
>   			if (i == hang_index && j > hang_context)
>   				assert_reset_status(i, fd[i], ctx[i][j],
> -						    RS_BATCH_PENDING);
> +						    RS_NO_ERROR);
>   			if (i > hang_index)
>   				assert_reset_status(i, fd[i], ctx[i][j],
> -						    RS_BATCH_PENDING);
> +						    RS_NO_ERROR);
>   		}
>   	}
>   
> @@ -330,7 +330,7 @@ static void test_ban(const struct intel_execution_engine *e)
>   	struct local_drm_i915_reset_stats rs_bad, rs_good;
>   	int fd_bad, fd_good;
>   	int ban, retry = 10;
> -	int active_count = 0, pending_count = 0;
> +	int active_count = 0;
>   
>   	fd_bad = drm_open_driver(DRIVER_INTEL);
>   	fd_good = drm_open_driver(DRIVER_INTEL);
> @@ -350,9 +350,6 @@ static void test_ban(const struct intel_execution_engine *e)
>   	noop(fd_good, 0, e);
>   	noop(fd_good, 0, e);
>   
> -	/* The second hang will count as pending and be discarded */
> -	active_count--;
> -	pending_count += 1; /* inject hang does 1 real exec + 1 dummy */
>   	while (retry--) {
>   		inject_hang(fd_bad, 0, e, BAN);
>   		active_count++;
> @@ -373,12 +370,10 @@ static void test_ban(const struct intel_execution_engine *e)
>   	assert_reset_status(fd_bad, fd_bad, 0, RS_BATCH_ACTIVE);
>   	igt_assert_eq(gem_reset_stats(fd_bad, 0, &rs_bad), 0);
>   	igt_assert_eq(rs_bad.batch_active, active_count);
> -	igt_assert_eq(rs_bad.batch_pending, pending_count);
>   
> -	assert_reset_status(fd_good, fd_good, 0, RS_BATCH_PENDING);
> +	assert_reset_status(fd_good, fd_good, 0, RS_NO_ERROR);
>   	igt_assert_eq(gem_reset_stats(fd_good, 0, &rs_good), 0);
>   	igt_assert_eq(rs_good.batch_active, 0);
> -	igt_assert_eq(rs_good.batch_pending, 2);
>   
>   	close(fd_bad);
>   	close(fd_good);
> @@ -389,7 +384,7 @@ static void test_ban_ctx(const struct intel_execution_engine *e)
>   	struct local_drm_i915_reset_stats rs_bad, rs_good;
>   	int fd, ban, retry = 10;
>   	uint32_t ctx_good, ctx_bad;
> -	int active_count = 0, pending_count = 0;
> +	int active_count = 0;
>   
>   	fd = drm_open_driver(DRIVER_INTEL);
>   
> @@ -414,9 +409,6 @@ static void test_ban_ctx(const struct intel_execution_engine *e)
>   	noop(fd, ctx_good, e);
>   	noop(fd, ctx_good, e);
>   
> -	/* This second hang will count as pending and be discarded */
> -	active_count--;
> -	pending_count++;
>   	while (retry--) {
>   		inject_hang(fd, ctx_bad, e, BAN);
>   		active_count++;
> @@ -437,12 +429,10 @@ static void test_ban_ctx(const struct intel_execution_engine *e)
>   	assert_reset_status(fd, fd, ctx_bad, RS_BATCH_ACTIVE);
>   	igt_assert_eq(gem_reset_stats(fd, ctx_bad, &rs_bad), 0);
>   	igt_assert_eq(rs_bad.batch_active, active_count);
> -	igt_assert_eq(rs_bad.batch_pending, pending_count);
>   
> -	assert_reset_status(fd, fd, ctx_good, RS_BATCH_PENDING);
> +	assert_reset_status(fd, fd, ctx_good, RS_NO_ERROR);
>   	igt_assert_eq(gem_reset_stats(fd, ctx_good, &rs_good), 0);
>   	igt_assert_eq(rs_good.batch_active, 0);
> -	igt_assert_eq(rs_good.batch_pending, 2);
>   
>   	close(fd);
>   }
> 


More information about the Intel-gfx mailing list