All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Alan Previn <alan.previn.teres.alexis@intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t v9 11/16] Verify execbuf fails with stale PXP buffer after teardown
Date: Fri, 10 Sep 2021 15:09:00 -0400	[thread overview]
Message-ID: <YTutTPpfu1TgMUUl@intel.com> (raw)
In-Reply-To: <20210902173043.821318-12-alan.previn.teres.alexis@intel.com>

On Thu, Sep 02, 2021 at 10:30:38AM -0700, Alan Previn wrote:
> Add a check to verify that reusing a stale protected buffer
> in a gem_execbuff (with a protected context) after a teardown
> event fails with -ENOEXEC error. Trigger the teardown via the
> pxp invalidation debugfs that simulates a HW teardown IRQ.
> 
> NOTE: The end-to-end architecture requirement includes that
> any break in the links of the PXP sessions needs to trigger a
> full teardown and the application needs to be made aware of that
> allowing it to re-establish the end-to-end pipeline of buffers,
> contexts and renders again if it chooses to. This stricter
> behavior targets only contexts created with PXP enabled.
> 
> Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
> ---
>  tests/i915/gem_pxp.c | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
> 
> diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
> index 6884e0d7..fab8e28d 100644
> --- a/tests/i915/gem_pxp.c
> +++ b/tests/i915/gem_pxp.c
> @@ -794,6 +794,39 @@ static void test_pxp_stale_ctx_execution(int i915)
>  	free_exec_assets(i915, &data);
>  }
>  
> +static void test_pxp_stale_buf_execution(int i915)
> +{
> +	int ret;
> +	struct simple_exec_assets data = {0};
> +	uint32_t ctx2;
> +	struct intel_bb *ibb2;
> +
> +	/* Use pxp buffers with pxp context for testing for invalidation of protected buffers. */
> +	prepare_exec_assets(i915, &data, true, true);
> +	ret = gem_execbuf_flush_store_dw(i915, data.ibb, data.ctx, data.fencebuf);
> +	igt_assert(ret == 0);
> +
> +	trigger_pxp_debugfs_forced_teardown(i915);
> +
> +	/*
> +	 * After teardown, use a new pxp context but reuse the stale bo to ensure
> +	 * the kernel is catching the invalidated bo (not context)
> +	 */
> +	ret = create_ctx_with_params(i915, true, true, true, false, &ctx2);
> +	igt_assert_eq(ret, 0);
> +	igt_assert_eq(get_ctx_protected_param(i915, ctx2), 1);
> +	ibb2 = intel_bb_create_with_context(i915, ctx2, 4096);
> +	igt_assert(ibb2);
> +	intel_bb_remove_intel_buf(data.ibb, data.fencebuf);
> +	intel_bb_add_intel_buf(ibb2, data.fencebuf, true);
> +	ret = gem_execbuf_flush_store_dw(i915, ibb2, ctx2, data.fencebuf);
> +	igt_assert_f((ret == -ENOEXEC), "Executing stale pxp buffer didn't fail with -ENOEXEC\n");

I believe this is opposite as well...
Or I am getting confused...

other than this, everything looks good

> +
> +	intel_bb_destroy(ibb2);
> +	gem_context_destroy(i915, ctx2);
> +	free_exec_assets(i915, &data);
> +}
> +
>  igt_main
>  {
>  	int i915 = -1;
> @@ -885,6 +918,8 @@ igt_main
>  			test_pxp_pwrcycle_teardown_keychange(i915, &pm);
>  		igt_subtest("verify-pxp-stale-ctx-execution")
>  			test_pxp_stale_ctx_execution(i915);
> +		igt_subtest("verify-pxp-stale-buf-execution")
> +			test_pxp_stale_buf_execution(i915);
>  	}
>  
>  	igt_fixture {
> -- 
> 2.25.1
> 

  reply	other threads:[~2021-09-10 19:09 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02 17:30 [igt-dev] [PATCH i-g-t v9 00/16] Introduce PXP Test Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 01/16] Add PXP UAPI support in i915_drm.h Alan Previn
2021-09-03 10:31   ` Petri Latvala
2021-09-03 21:11     ` Teres Alexis, Alan Previn
2021-09-06  6:21       ` Petri Latvala
2021-09-06 21:23         ` Dixit, Ashutosh
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 02/16] Add basic PXP testing of buffer and context alloc Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 03/16] Perform a regular 3d copy as a control checkpoint Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 04/16] Add PXP attribute support in batchbuffer and buffer_ops libs Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 05/16] Add MI_SET_APPID instruction definition Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 06/16] Enable protected session cmd in gen12_render_copyfunc Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 07/16] Add subtest to copy raw source to protected dest Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 08/16] Add test where both src and dest are protected Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 09/16] Verify PXP teardown occurred through suspend-resume Alan Previn
2021-09-03 16:47   ` Rodrigo Vivi
2021-09-03 21:00     ` Teres Alexis, Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 10/16] Verify execbuf fails with stale PXP context after teardown Alan Previn
2021-09-10 18:53   ` Rodrigo Vivi
2021-09-10 19:04     ` Teres Alexis, Alan Previn
2021-09-10 19:12       ` Rodrigo Vivi
2021-09-10 21:23         ` Teres Alexis, Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 11/16] Verify execbuf fails with stale PXP buffer " Alan Previn
2021-09-10 19:09   ` Rodrigo Vivi [this message]
2021-09-10 19:11     ` Rodrigo Vivi
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 12/16] Verify execbuf ok with stale PXP buf in opt-out use Alan Previn
2021-09-10 19:12   ` Rodrigo Vivi
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 13/16] Verify execution behavior with stale PXP assets through suspend-resume Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 14/16] Ensure RESET_STATS reports invalidated protected contexts Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 15/16] Verify protected surfaces are dma buffer sharable Alan Previn
2021-09-02 17:30 ` [igt-dev] [PATCH i-g-t v9 16/16] tests/i915_pxp: CRC validation for display tests Alan Previn
2021-09-02 18:19 ` [igt-dev] ✓ Fi.CI.BAT: success for Introduce PXP Test (rev9) Patchwork
2021-09-02 22:32 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YTutTPpfu1TgMUUl@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=alan.previn.teres.alexis@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.