From: Daniel Vetter <daniel@ffwll.ch>
To: "Christian König" <ckoenig.leichtzumerken@gmail.com>
Cc: daniel@ffwll.ch, dri-devel@lists.freedesktop.org,
linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org
Subject: Re: [PATCH 02/24] dma-buf: finally make the dma_resv_list private
Date: Wed, 22 Dec 2021 22:08:35 +0100 [thread overview]
Message-ID: <YcOT0z79tB2u/QeX@phenom.ffwll.local> (raw)
In-Reply-To: <20211207123411.167006-3-christian.koenig@amd.com>
On Tue, Dec 07, 2021 at 01:33:49PM +0100, Christian König wrote:
> Drivers should never touch this directly.
>
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
> drivers/dma-buf/dma-resv.c | 26 ++++++++++++++++++++++++++
> include/linux/dma-resv.h | 26 +-------------------------
> 2 files changed, 27 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/dma-buf/dma-resv.c b/drivers/dma-buf/dma-resv.c
> index a688dbded3d3..a12a3a39f280 100644
> --- a/drivers/dma-buf/dma-resv.c
> +++ b/drivers/dma-buf/dma-resv.c
> @@ -56,6 +56,19 @@
> DEFINE_WD_CLASS(reservation_ww_class);
> EXPORT_SYMBOL(reservation_ww_class);
>
> +/**
> + * struct dma_resv_list - a list of shared fences
> + * @rcu: for internal use
> + * @shared_count: table of shared fences
> + * @shared_max: for growing shared fence table
> + * @shared: shared fence table
> + */
Imo drop the kerneldoc here and just make these comments before the right
member if you feel like keeping them. Imo it's obvious enough what's going
on that the comments aren't necessary, and we don't kerneldoc document
internals generally at all - only interfaces relevant by drivers and
things outside of a subsystem.
> +struct dma_resv_list {
> + struct rcu_head rcu;
> + u32 shared_count, shared_max;
> + struct dma_fence __rcu *shared[];
> +};
> +
> /**
> * dma_resv_list_alloc - allocate fence list
> * @shared_max: number of fences we need space for
> @@ -133,6 +146,19 @@ void dma_resv_fini(struct dma_resv *obj)
> }
> EXPORT_SYMBOL(dma_resv_fini);
>
> +/**
> + * dma_resv_shared_list - get the reservation object's shared fence list
> + * @obj: the reservation object
> + *
> + * Returns the shared fence list. Caller must either hold the objects
> + * through dma_resv_lock() or the RCU read side lock through rcu_read_lock(),
> + * or one of the variants of each
> + */
Same here. With that:
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> +static inline struct dma_resv_list *dma_resv_shared_list(struct dma_resv *obj)
> +{
> + return rcu_dereference_check(obj->fence, dma_resv_held(obj));
> +}
> +
> /**
> * dma_resv_reserve_shared - Reserve space to add shared fences to
> * a dma_resv.
> diff --git a/include/linux/dma-resv.h b/include/linux/dma-resv.h
> index e0be34265eae..3baf2a4a9a0d 100644
> --- a/include/linux/dma-resv.h
> +++ b/include/linux/dma-resv.h
> @@ -47,18 +47,7 @@
>
> extern struct ww_class reservation_ww_class;
>
> -/**
> - * struct dma_resv_list - a list of shared fences
> - * @rcu: for internal use
> - * @shared_count: table of shared fences
> - * @shared_max: for growing shared fence table
> - * @shared: shared fence table
> - */
> -struct dma_resv_list {
> - struct rcu_head rcu;
> - u32 shared_count, shared_max;
> - struct dma_fence __rcu *shared[];
> -};
> +struct dma_resv_list;
>
> /**
> * struct dma_resv - a reservation object manages fences for a buffer
> @@ -440,19 +429,6 @@ dma_resv_excl_fence(struct dma_resv *obj)
> return rcu_dereference_check(obj->fence_excl, dma_resv_held(obj));
> }
>
> -/**
> - * dma_resv_shared_list - get the reservation object's shared fence list
> - * @obj: the reservation object
> - *
> - * Returns the shared fence list. Caller must either hold the objects
> - * through dma_resv_lock() or the RCU read side lock through rcu_read_lock(),
> - * or one of the variants of each
> - */
> -static inline struct dma_resv_list *dma_resv_shared_list(struct dma_resv *obj)
> -{
> - return rcu_dereference_check(obj->fence, dma_resv_held(obj));
> -}
> -
> void dma_resv_init(struct dma_resv *obj);
> void dma_resv_fini(struct dma_resv *obj);
> int dma_resv_reserve_shared(struct dma_resv *obj, unsigned int num_fences);
> --
> 2.25.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
next prev parent reply other threads:[~2021-12-22 21:08 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 12:33 completely rework the dma_resv semantic Christian König
2021-12-07 12:33 ` [PATCH 01/24] dma-buf: add dma_resv_replace_fences Christian König
2021-12-22 21:05 ` Daniel Vetter
2022-01-03 10:48 ` Christian König
2022-01-14 16:28 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 02/24] dma-buf: finally make the dma_resv_list private Christian König
2021-12-22 21:08 ` Daniel Vetter [this message]
2021-12-07 12:33 ` [PATCH 03/24] dma-buf: drop excl_fence parameter from dma_resv_get_fences Christian König
2021-12-22 21:13 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 04/24] dma-buf: add dma_resv_get_singleton v2 Christian König
2021-12-22 21:21 ` Daniel Vetter
2022-01-03 11:13 ` Christian König
2022-01-14 16:31 ` Daniel Vetter
2022-01-17 11:26 ` Christian König
2021-12-07 12:33 ` [PATCH 05/24] RDMA: use dma_resv_wait() instead of extracting the fence Christian König
2021-12-22 21:23 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 06/24] drm/etnaviv: stop using dma_resv_excl_fence Christian König
2021-12-22 21:26 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 07/24] drm/nouveau: " Christian König
2021-12-22 21:26 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 08/24] drm/vmwgfx: " Christian König
2021-12-22 21:31 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 09/24] drm/radeon: " Christian König
2021-12-22 21:30 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 10/24] drm/amdgpu: remove excl as shared workarounds Christian König
2021-12-22 21:34 ` Daniel Vetter
2021-12-07 12:33 ` [PATCH 11/24] drm/amdgpu: use dma_resv_for_each_fence for CS workaround Christian König
2021-12-22 21:37 ` Daniel Vetter
2022-01-03 12:24 ` Christian König
2021-12-07 12:33 ` [PATCH 12/24] dma-buf: finally make dma_resv_excl_fence private Christian König
2021-12-22 21:39 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 13/24] dma-buf: drop the DAG approach for the dma_resv object Christian König
2021-12-22 21:43 ` Daniel Vetter
2022-01-04 15:08 ` Christian König
2022-01-14 16:33 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 14/24] dma-buf/drivers: make reserving a shared slot mandatory v2 Christian König
2021-12-22 21:50 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 15/24] drm: support more than one write fence in drm_gem_plane_helper_prepare_fb Christian König
2021-12-22 21:51 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 16/24] drm/nouveau: support more than one write fence in fenv50_wndw_prepare_fb Christian König
2021-12-22 21:52 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 17/24] drm/amdgpu: use dma_resv_get_singleton in amdgpu_pasid_free_cb Christian König
2021-12-22 21:53 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 18/24] dma-buf: add enum dma_resv_usage v3 Christian König
2021-12-22 22:00 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 19/24] dma-buf: specify usage while adding fences to dma_resv obj v2 Christian König
2021-12-07 12:34 ` [PATCH 20/24] dma-buf: add DMA_RESV_USAGE_KERNEL Christian König
2021-12-22 22:05 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 21/24] dma-buf: add DMA_RESV_USAGE_BOOKKEEP Christian König
2021-12-22 22:10 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 22/24] dma-buf: wait for map to complete for static attachments Christian König
2021-12-22 22:16 ` Daniel Vetter
2021-12-07 12:34 ` [PATCH 23/24] amdgpu: remove DMA-buf fence workaround Christian König
2021-12-07 12:34 ` [PATCH 24/24] drm/ttm: remove bo->moving Christian König
2021-12-17 14:39 ` completely rework the dma_resv semantic Christian König
2021-12-22 22:17 ` Daniel Vetter
2021-12-23 9:11 ` Christian König
2022-01-14 16:35 ` Daniel Vetter
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=YcOT0z79tB2u/QeX@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=ckoenig.leichtzumerken@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-media@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox