All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Teres Alexis, Alan Previn" <alan.previn.teres.alexis@intel.com>
To: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Cc: "justonli@chromium.org" <justonli@chromium.org>,
	"Ceraolo Spurio, Daniele" <daniele.ceraolospurio@intel.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v5 5/8] drm/i915/pxp: Add ARB session creation and cleanup
Date: Fri, 17 Feb 2023 03:12:26 +0000	[thread overview]
Message-ID: <a37b0016cc45876ea9df28f91c34a92daacb08e1.camel@intel.com> (raw)
In-Reply-To: <20230214213844.2890382-6-alan.previn.teres.alexis@intel.com>

On Tue, 2023-02-14 at 13:38 -0800, Teres Alexis, Alan Previn wrote:
> Add MTL's function for ARB session creation using PXP firmware
> version 4.3 ABI structure format.
> 
> Also add MTL's function for ARB session invalidation but this
> reuses PXP firmware version 4.2 ABI structure format.
> 
> Before checking the return status, look at the GSC-CS-Mem-Header's
> pending-bit which means the GSC firmware is busy and we should
> resubmit.
> 
> Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
> ---

alan:snip

Not part of this patch today but a new modification is required that would end up going into this patch --->

So from the internal testing we are doing on MTL, i have noticed that the first time the GSC firmware
is requested to init the arb session (right after a cold-boot or  driver-reload-after-flr), it takes much longer.
This has resulted in the observation of the following problematic event flow:

1. app or igt calls gem-context-create to create a protected context (after a fresh boot or driver reload).
2. intel_pxp_start will begin the global teardown and recreation where:
	2-a: the first part (i.e. session teardown) is skipped (since arb session wasnt created before this)
        2-b: the second part (i.e. arb session init commands via the gsc firmware) does happen and takes a long time (on first time)
3. step 2 is queued thru a worker while the main call into intel_pxp_start continues to wait for the arb
    session to start and finally bails out with a timeout (back up through gem-context-create).
4. app retries again and now we get a second call that repeats step 1 while 2-b is still wrapping up.
    so depending on the race of this step 4 (step-1-recall) vs the completion of step 2-b, we could end up
    getting a 2nd teardown right (i.e. step 2-a going in) after the the first arb-session-creation completed
    ... eventhough in both cases app just wants the creation.

The simplest fix (with minimal code changes) would be to add a complementary "is_arb_creation_pending" flag
alongside the is_arb_valid flag - with both remainining protected by the arb-mutex. That said, we I'll respin rev6
with this fix along with other mutex fix on Patch4.

        


WARNING: multiple messages have this Message-ID (diff)
From: "Teres Alexis, Alan Previn" <alan.previn.teres.alexis@intel.com>
To: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Cc: "dri-devel@lists.freedesktop.org" <dri-devel@lists.freedesktop.org>
Subject: Re: [Intel-gfx] [PATCH v5 5/8] drm/i915/pxp: Add ARB session creation and cleanup
Date: Fri, 17 Feb 2023 03:12:26 +0000	[thread overview]
Message-ID: <a37b0016cc45876ea9df28f91c34a92daacb08e1.camel@intel.com> (raw)
In-Reply-To: <20230214213844.2890382-6-alan.previn.teres.alexis@intel.com>

On Tue, 2023-02-14 at 13:38 -0800, Teres Alexis, Alan Previn wrote:
> Add MTL's function for ARB session creation using PXP firmware
> version 4.3 ABI structure format.
> 
> Also add MTL's function for ARB session invalidation but this
> reuses PXP firmware version 4.2 ABI structure format.
> 
> Before checking the return status, look at the GSC-CS-Mem-Header's
> pending-bit which means the GSC firmware is busy and we should
> resubmit.
> 
> Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
> ---

alan:snip

Not part of this patch today but a new modification is required that would end up going into this patch --->

So from the internal testing we are doing on MTL, i have noticed that the first time the GSC firmware
is requested to init the arb session (right after a cold-boot or  driver-reload-after-flr), it takes much longer.
This has resulted in the observation of the following problematic event flow:

1. app or igt calls gem-context-create to create a protected context (after a fresh boot or driver reload).
2. intel_pxp_start will begin the global teardown and recreation where:
	2-a: the first part (i.e. session teardown) is skipped (since arb session wasnt created before this)
        2-b: the second part (i.e. arb session init commands via the gsc firmware) does happen and takes a long time (on first time)
3. step 2 is queued thru a worker while the main call into intel_pxp_start continues to wait for the arb
    session to start and finally bails out with a timeout (back up through gem-context-create).
4. app retries again and now we get a second call that repeats step 1 while 2-b is still wrapping up.
    so depending on the race of this step 4 (step-1-recall) vs the completion of step 2-b, we could end up
    getting a 2nd teardown right (i.e. step 2-a going in) after the the first arb-session-creation completed
    ... eventhough in both cases app just wants the creation.

The simplest fix (with minimal code changes) would be to add a complementary "is_arb_creation_pending" flag
alongside the is_arb_valid flag - with both remainining protected by the arb-mutex. That said, we I'll respin rev6
with this fix along with other mutex fix on Patch4.

        


  reply	other threads:[~2023-02-17  3:12 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-14 21:38 [Intel-gfx] [PATCH v5 0/8] drm/i915/pxp: Add MTL PXP Support Alan Previn
2023-02-14 21:38 ` Alan Previn
2023-02-14 21:38 ` [PATCH v5 1/8] drm/i915/pxp: Add GSC-CS back-end resource init and cleanup Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-14 21:38 ` [Intel-gfx] [PATCH v5 2/8] drm/i915/pxp: Add MTL hw-plumbing enabling for KCR operation Alan Previn
2023-02-14 21:38   ` Alan Previn
2023-02-14 21:38 ` [PATCH v5 3/8] drm/i915/pxp: Add MTL helpers to submit Heci-Cmd-Packet to GSC Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-22 23:41   ` Teres Alexis, Alan Previn
2023-02-22 23:41     ` [Intel-gfx] " Teres Alexis, Alan Previn
2023-02-14 21:38 ` [PATCH v5 4/8] drm/i915/pxp: Add GSC-CS backend to send GSC fw messages Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-15 19:58   ` Teres Alexis, Alan Previn
2023-02-15 19:58     ` [Intel-gfx] " Teres Alexis, Alan Previn
2023-02-14 21:38 ` [PATCH v5 5/8] drm/i915/pxp: Add ARB session creation and cleanup Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-17  3:12   ` Teres Alexis, Alan Previn [this message]
2023-02-17  3:12     ` Teres Alexis, Alan Previn
2023-02-23 23:27     ` Teres Alexis, Alan Previn
2023-02-23 22:39   ` Teres Alexis, Alan Previn
2023-02-23 22:39     ` Teres Alexis, Alan Previn
2023-02-14 21:38 ` [PATCH v5 6/8] drm/i915/pxp: MTL-KCR interrupt ctrl's are in GT-0 Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-14 21:38 ` [PATCH v5 7/8] drm/i915/pxp: On MTL, KCR enabling doesn't wait on tee component Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-14 21:38 ` [PATCH v5 8/8] drm/i915/pxp: Enable PXP with MTL-GSC-CS Alan Previn
2023-02-14 21:38   ` [Intel-gfx] " Alan Previn
2023-02-18 17:31   ` Teres Alexis, Alan Previn
2023-02-18 17:31     ` [Intel-gfx] " Teres Alexis, Alan Previn
2023-02-14 23:01 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/pxp: Add MTL PXP Support (rev5) Patchwork
2023-02-14 23:27 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-02-15 10:20 ` [Intel-gfx] ✓ 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=a37b0016cc45876ea9df28f91c34a92daacb08e1.camel@intel.com \
    --to=alan.previn.teres.alexis@intel.com \
    --cc=daniele.ceraolospurio@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=justonli@chromium.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.