Re: [PATCH] xfs: use KMEM_CACHE() to create xfs_defer_pending cache

Darrick J. Wong
2024-02-29T16:00:49Z

On Thu, Feb 29, 2024 at 04:33:42PM +0800, kunwu.chan@linux.dev wrote:
> From: Kunwu Chan <chentao@kylinos.cn>
>
> Use the KMEM_CACHE() macro instead of kmem_cache_create() to simplify
> the creation of SLAB caches when the default values are used.
>
> Signed-off-by: Kunwu Chan <chentao@kylinos.cn>

Why bother? The vast majority of the kernel is still using
kmem_cache_create(), not the weird, shouty macro that doesn't actually
tell us what it is doing with said kmem_cache......

Up until now we've chosen not switch XFS to use it because many of the
slab caches we use in XFS are not just "default" slab caches. IOWs, we
still have to use kmem_cache_create() for a lot of the caches we create,
so we may as well use kmem_cache_create() for all of them rather than
have to go look up what KMEM_CACHE() translates to every time we are
looking at how slab caches are created.

Also, if you are going to change simple API stuff like this in XFS,
please do all the conversions in a single patch. It takes much less time
and resources to review and merge a single patch compared to a pile of
dozen independent one line patches...

--D

> ---
> fs/xfs/libxfs/xfs_defer.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_defer.c b/fs/xfs/libxfs/xfs_defer.c
> index 66a17910d021..6d957fcc17f2 100644
> --- a/fs/xfs/libxfs/xfs_defer.c
> +++ b/fs/xfs/libxfs/xfs_defer.c
> @@ -1143,9 +1143,7 @@ xfs_defer_resources_rele(
> static inline int __init
> xfs_defer_init_cache(void)
> {
> - xfs_defer_pending_cache = kmem_cache_create("xfs_defer_pending",
> - sizeof(struct xfs_defer_pending),
> - 0, 0, NULL);
> + xfs_defer_pending_cache = KMEM_CACHE(xfs_defer_pending, 0);
>
> return xfs_defer_pending_cache != NULL ? 0 : -ENOMEM;
> }
> --
> 2.39.2
>
>