From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9E9D6EB7E for ; Tue, 5 Oct 2021 19:41:02 +0000 (UTC) From: Alan Previn Date: Tue, 5 Oct 2021 12:41:30 -0700 Message-Id: <20211005194133.13508-13-alan.previn.teres.alexis@intel.com> In-Reply-To: <20211005194133.13508-1-alan.previn.teres.alexis@intel.com> References: <20211005194133.13508-1-alan.previn.teres.alexis@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t v15 12/15] Verify execbuf ok with stale PXP buf in opt-out use List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Alan Previn , Rodrigo Vivi List-ID: Add a check to verify that reusing a stale protected buffer in a gem_execbuff call, but using a regular (not- protected) context will succeed after a teardown event. Trigger the teardown via the pxp invalidation debugfs that simulates a HW teardown IRQ. This ensures that user space applications that choose not to opt-in for strict PXP teardown awareness (by using a regular context) won't suffer gem_execbuff failures if a protected buffer was among the assets used in any of its rendering operations. Signed-off-by: Alan Previn Reviewed-by: Rodrigo Vivi --- tests/i915/gem_pxp.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c index 22a2e5a4..8e3bc3cf 100644 --- a/tests/i915/gem_pxp.c +++ b/tests/i915/gem_pxp.c @@ -829,6 +829,27 @@ static void test_pxp_stale_buf_execution(int i915) free_exec_assets(i915, &data); } +static void test_pxp_stale_buf_optout_execution(int i915) +{ + int ret; + struct simple_exec_assets data = {0}; + + /* + * Use a normal context for testing opt-out behavior + * when executing with a pxp buffer across a teardown event. + */ + prepare_exec_assets(i915, &data, false, true); + ret = gem_execbuf_flush_store_dw(i915, data.ibb, data.ctx, data.fencebuf); + igt_assert(ret == 0); + + trigger_pxp_debugfs_forced_teardown(i915); + + ret = gem_execbuf_flush_store_dw(i915, data.ibb, data.ctx, data.fencebuf); + igt_assert_f((ret == 0), "Opt-out-execution with stale pxp buffer didn't succeed\n"); + + free_exec_assets(i915, &data); +} + igt_main { int i915 = -1; @@ -922,6 +943,8 @@ igt_main test_pxp_stale_ctx_execution(i915); igt_subtest("verify-pxp-stale-buf-execution") test_pxp_stale_buf_execution(i915); + igt_subtest("verify-pxp-stale-buf-optout-execution") + test_pxp_stale_buf_optout_execution(i915); } igt_fixture { -- 2.25.1