[igt-dev] [PATCH i-g-t v2] tests/i915/pxp: test_pxp_stale_buf_optout_execution requires arb session
Ceraolo Spurio, Daniele
daniele.ceraolospurio at intel.com
Thu Mar 2 16:48:17 UTC 2023
On 2/14/2023 10:11 AM, 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.
>
> v2: - use create_ctx_with_params instead of prepare_exec_assets
> for the background pxp context (Daniele)
>
> Signed-off-by: Alan Previn <alan.previn.teres.alexis at intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
Daniele
> ---
> tests/i915/gem_pxp.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
> index 8c141ddd..0c422448 100644
> --- a/tests/i915/gem_pxp.c
> +++ b/tests/i915/gem_pxp.c
> @@ -933,6 +933,27 @@ static void test_pxp_stale_buf_optout_execution(int i915)
> {
> int ret;
> struct simple_exec_assets data = {0};
> + uint32_t tmpctx;
> +
> + /*
> + * 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 we didn't previously create an ARB session or if runtime
> + * power management forced the arb session into invalid state,
> + * we will 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.
> + */
> + ret = create_ctx_with_params(i915, true, true, true, false, &tmpctx);
> + igt_assert(ret == 0);
>
> /*
> * Use a normal context for testing opt-out behavior
> @@ -948,6 +969,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);
> + gem_context_destroy(i915, tmpctx);
> }
>
> static void test_pxp_pwrcycle_staleasset_execution(int i915, struct powermgt_data *pm)
More information about the igt-dev
mailing list