From: Matthew Brost <matthew.brost@intel.com>
To: Matthew Auld <matthew.auld@intel.com>
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [Intel-xe] [PATCH v4 3/7] drm/xe/tlb: increment next seqno after successful CT send
Date: Thu, 6 Jul 2023 03:59:02 +0000 [thread overview]
Message-ID: <ZKY8Bgldf5j5K2KC@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <20230705160602.237213-12-matthew.auld@intel.com>
On Wed, Jul 05, 2023 at 05:06:06PM +0100, Matthew Auld wrote:
> If we are in the middle of a GT reset or similar the CT might be
> disabled, such that the CT send fails. However we already incremented
> gt->tlb_invalidation.seqno which might lead to warnings, since we
> effectively just skipped a seqno:
>
> 0000:00:02.0: drm_WARN_ON(expected_seqno != msg[0])
>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: José Roberto de Souza <jose.souza@intel.com>
> ---
> drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> index 2fcb477604e2..b38da572d268 100644
> --- a/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> +++ b/drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c
> @@ -124,10 +124,6 @@ static int send_tlb_invalidation(struct xe_guc *guc,
> trace_xe_gt_tlb_invalidation_fence_send(fence);
> }
> action[1] = seqno;
> - gt->tlb_invalidation.seqno = (gt->tlb_invalidation.seqno + 1) %
> - TLB_INVALIDATION_SEQNO_MAX;
> - if (!gt->tlb_invalidation.seqno)
> - gt->tlb_invalidation.seqno = 1;
> ret = xe_guc_ct_send_locked(&guc->ct, action, len,
> G2H_LEN_DW_TLB_INVALIDATE, 1);
> if (!ret && fence) {
> @@ -137,8 +133,13 @@ static int send_tlb_invalidation(struct xe_guc *guc,
> >->tlb_invalidation.fence_tdr,
> TLB_TIMEOUT);
> }
> - if (!ret)
Do we now (after this entire series) have the another race where the
below warn could fire as the CT fast path executes before we update the
seqno value? Would it be better to just roll back the seqno on error?
Matt
> + if (!ret) {
> + gt->tlb_invalidation.seqno = (gt->tlb_invalidation.seqno + 1) %
> + TLB_INVALIDATION_SEQNO_MAX;
> + if (!gt->tlb_invalidation.seqno)
> + gt->tlb_invalidation.seqno = 1;
> ret = seqno;
> + }
> if (ret < 0 && fence)
> invalidation_fence_signal(fence);
> mutex_unlock(&guc->ct.lock);
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-07-06 3:59 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-05 16:06 [Intel-xe] [PATCH v4 0/7] Try to handle TLB invalidations from CT fast-path Matthew Auld
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 1/7] drm/xe: hold mem_access.ref for " Matthew Auld
2023-07-06 3:51 ` Matthew Brost
2023-07-06 8:29 ` Matthew Auld
2023-07-06 14:50 ` Matthew Brost
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 2/7] drm/xe/ct: hold fast_lock when reserving space for g2h Matthew Auld
2023-07-06 3:43 ` Matthew Brost
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 3/7] drm/xe/tlb: increment next seqno after successful CT send Matthew Auld
2023-07-06 3:59 ` Matthew Brost [this message]
2023-07-06 9:42 ` Matthew Auld
2023-07-06 15:15 ` Matthew Brost
2023-07-06 15:22 ` Matthew Auld
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 4/7] drm/xe/ct: serialise fast_lock during CT disable Matthew Auld
2023-07-06 4:00 ` Matthew Brost
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 5/7] drm/xe/gt: tweak placement for signalling TLB fences after GT reset Matthew Auld
2023-07-06 4:01 ` Matthew Brost
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 6/7] drm/xe/tlb: also update seqno_recv during reset Matthew Auld
2023-07-06 4:05 ` Matthew Brost
2023-07-06 10:02 ` Matthew Auld
2023-07-05 16:06 ` [Intel-xe] [PATCH v4 7/7] drm/xe: handle TLB invalidations from CT fast-path Matthew Auld
2023-07-06 4:14 ` Matthew Brost
2023-07-05 16:10 ` [Intel-xe] ✓ CI.Patch_applied: success for Try to handle TLB invalidations from CT fast-path (rev2) Patchwork
2023-07-05 16:11 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-07-05 16:12 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-07-05 16:16 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-07-05 16:16 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-07-05 16:17 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-07-05 17:02 ` [Intel-xe] ○ CI.BAT: info " Patchwork
2023-07-06 15:23 ` [Intel-xe] [PATCH v4 0/7] Try to handle TLB invalidations from CT fast-path Souza, Jose
2023-07-06 15:48 ` Matthew Auld
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=ZKY8Bgldf5j5K2KC@DUT025-TGLU.fm.intel.com \
--to=matthew.brost@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.auld@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox