From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Matthew Brost <matthew.brost@intel.com>
Cc: <intel-xe@lists.freedesktop.org>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Subject: Re: [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock
Date: Wed, 6 Mar 2024 13:39:52 -0500 [thread overview]
Message-ID: <Zei4eE1Aym_9FdJ0@intel.com> (raw)
In-Reply-To: <20240306052002.311196-5-matthew.brost@intel.com>
On Tue, Mar 05, 2024 at 09:20:02PM -0800, Matthew Brost wrote:
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> Considering the caller of the GGTT functions should keep the
> backing storage alive before the function completes, it's not
> necessary to invalidate with the GGTT lock held. This just adds
> latency for every user of the GGTT.
>
> Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/xe/xe_ggtt.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 42e92011dd69..dc5a6994f1be 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -389,9 +389,6 @@ void xe_ggtt_map_bo(struct xe_ggtt *ggtt, struct xe_bo *bo)
> pte = ggtt->pt_ops->pte_encode_bo(bo, offset, pat_index);
> xe_ggtt_set_pte(ggtt, start + offset, pte);
> }
> -
> - if (bo->flags & XE_BO_GGTT_INVALIDATE_BIT)
> - xe_ggtt_invalidate(ggtt);
> }
>
> static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
> @@ -420,6 +417,9 @@ static int __xe_ggtt_insert_bo_at(struct xe_ggtt *ggtt, struct xe_bo *bo,
> if (!err)
> xe_ggtt_map_bo(ggtt, bo);
> mutex_unlock(&ggtt->lock);
> +
> + if (!err && bo->flags & XE_BO_GGTT_INVALIDATE_BIT)
> + xe_ggtt_invalidate(ggtt);
> xe_device_mem_access_put(tile_to_xe(ggtt->tile));
>
> return err;
> @@ -440,16 +440,16 @@ void xe_ggtt_remove_node(struct xe_ggtt *ggtt, struct drm_mm_node *node,
> bool invalidate)
> {
> xe_device_mem_access_get(tile_to_xe(ggtt->tile));
> - mutex_lock(&ggtt->lock);
>
> + mutex_lock(&ggtt->lock);
> xe_ggtt_clear(ggtt, node->start, node->size);
> drm_mm_remove_node(node);
> node->size = 0;
> + mutex_unlock(&ggtt->lock);
>
> if (invalidate)
> xe_ggtt_invalidate(ggtt);
>
> - mutex_unlock(&ggtt->lock);
> xe_device_mem_access_put(tile_to_xe(ggtt->tile));
> }
>
> --
> 2.34.1
>
next prev parent reply other threads:[~2024-03-06 18:40 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-06 5:19 [PATCH 0/4] Spin of Reduce GGTT display pinning latency Matthew Brost
2024-03-06 5:19 ` [PATCH 1/4] drm/xe: Fix NULL check in xe_ggtt_init() Matthew Brost
2024-03-06 5:20 ` [PATCH 2/4] drm/xe: Drop ggtt invalidate from display code Matthew Brost
2024-03-06 5:20 ` [PATCH 3/4] drm/xe: Add XE_BO_GGTT_INVALIDATE_BIT flag Matthew Brost
2024-03-06 5:20 ` [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock Matthew Brost
2024-03-06 18:39 ` Rodrigo Vivi [this message]
2024-03-06 5:24 ` ✓ CI.Patch_applied: success for Spin of Reduce GGTT display pinning latency Patchwork
2024-03-06 5:24 ` ✓ CI.checkpatch: " Patchwork
2024-03-06 5:25 ` ✓ CI.KUnit: " Patchwork
2024-03-06 5:36 ` ✓ CI.Build: " Patchwork
2024-03-06 5:38 ` ✓ CI.Hooks: " Patchwork
2024-03-06 5:39 ` ✓ CI.checksparse: " Patchwork
2024-03-06 6:06 ` ✓ CI.BAT: " Patchwork
2024-03-06 10:03 ` [PATCH 0/4] " Maarten Lankhorst
2024-03-15 16:08 ` Borah, Chaitanya Kumar
-- strict thread matches above, loose matches on Subject: below --
2024-03-05 13:12 [PATCH 0/4] drm/xe: " Maarten Lankhorst
2024-03-05 13:12 ` [PATCH 4/4] drm/xe: Move xe_ggtt_invalidate out from ggtt->lock Maarten Lankhorst
2024-03-05 17:05 ` Matthew Brost
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=Zei4eE1Aym_9FdJ0@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matthew.brost@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 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.