[igt-dev] [PATCH] tests/i915/pxp: test_pxp_stale_buf_optout_execution requires arb session

Ceraolo Spurio, Daniele daniele.ceraolospurio at intel.com
Mon Feb 13 23:30:40 UTC 2023



On 2/7/2023 10:24 PM, Alan Previn wrote:
> Subtest 'test_pxp_stale_buf_optout_execution' when run on its own,
> could be executing without the PXP Arb session being alive. This
> would result in the termination trigger to fail (when writing to
> the pxp termination debugfs).
>
> Create a background protected context to start the Arb session so
> the simulated termination will succeed.
>
> Signed-off-by: Alan Previn <alan.previn.teres.alexis at intel.com>
> ---
>   tests/i915/gem_pxp.c | 20 ++++++++++++++++++++
>   1 file changed, 20 insertions(+)
>
> diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
> index 8c141ddd..5fbfe6b2 100644
> --- a/tests/i915/gem_pxp.c
> +++ b/tests/i915/gem_pxp.c
> @@ -933,6 +933,25 @@ static void test_pxp_stale_buf_optout_execution(int i915)
>   {
>   	int ret;
>   	struct simple_exec_assets data = {0};
> +	struct simple_exec_assets data2 = {0};
> +
> +	/*
> +	 * NOTE: this subtest creates a non-protected context
> +	 * for submissions that uses a protected buffer. The UAPI
> +	 * requirement dictates that gem_exec_buf will not fail
> +	 * if a teardown occurs since the context was not protected,
> +	 * despite the buffer being protected. However, the teardown
> +	 * is simulated using the pxp termination debugfs which will
> +	 * fail if PXP arb session is not active. Coincidentially
> +	 * this will likely not happen when running all the subtests
> +	 * together but if we execute this specific subtest on its own
> +	 * and if the system has no display enabled, it will likely
> +	 * not have active ARB session and thus the termination debugfs
> +	 * will fail and cause an assertion. That said, we need to
> +	 * create a background protected context (uninvolved with
> +	 * the intent of the subtest) to ensure ARB session is alive.
> +	 */
> +	prepare_exec_assets(i915, &data2, true, true);

Since you only need the context, wouldn't a call to 
create_ctx_with_params be more appropriate here? that way we don't have 
to allocate all the extra stuff.

Daniele

>   
>   	/*
>   	 * Use a normal context for testing opt-out behavior
> @@ -948,6 +967,7 @@ static void test_pxp_stale_buf_optout_execution(int i915)
>   	igt_assert_f((ret == 0), "Opt-out-execution with stale pxp buffer didn't succeed\n");
>   
>   	free_exec_assets(i915, &data);
> +	free_exec_assets(i915, &data2);
>   }
>   
>   static void test_pxp_pwrcycle_staleasset_execution(int i915, struct powermgt_data *pm)



More information about the igt-dev mailing list