2024-02-05 08:11:49

by Kunwu Chan

[permalink] [raw]
Subject: [PATCH] zonefs: Simplify the allocation of slab caches in zonefs_init_inodecache

Use the new KMEM_CACHE() macro instead of direct kmem_cache_create
to simplify the creation of SLAB caches.

Signed-off-by: Kunwu Chan <[email protected]>
---
fs/zonefs/super.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index 93971742613a..9b578e7007e9 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -1387,10 +1387,8 @@ static struct file_system_type zonefs_type = {

static int __init zonefs_init_inodecache(void)
{
- zonefs_inode_cachep = kmem_cache_create("zonefs_inode_cache",
- sizeof(struct zonefs_inode_info), 0,
- (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT),
- NULL);
+ zonefs_inode_cachep = KMEM_CACHE(zonefs_inode_info,
+ SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT);
if (zonefs_inode_cachep == NULL)
return -ENOMEM;
return 0;
--
2.39.2



2024-02-09 04:06:36

by Damien Le Moal

[permalink] [raw]
Subject: Re: [PATCH] zonefs: Simplify the allocation of slab caches in zonefs_init_inodecache

On 2/5/24 17:10, Kunwu Chan wrote:
> Use the new KMEM_CACHE() macro instead of direct kmem_cache_create
> to simplify the creation of SLAB caches.
>
> Signed-off-by: Kunwu Chan <[email protected]>
> ---
> fs/zonefs/super.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
> index 93971742613a..9b578e7007e9 100644
> --- a/fs/zonefs/super.c
> +++ b/fs/zonefs/super.c
> @@ -1387,10 +1387,8 @@ static struct file_system_type zonefs_type = {
>
> static int __init zonefs_init_inodecache(void)
> {
> - zonefs_inode_cachep = kmem_cache_create("zonefs_inode_cache",
> - sizeof(struct zonefs_inode_info), 0,
> - (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT),
> - NULL);
> + zonefs_inode_cachep = KMEM_CACHE(zonefs_inode_info,
> + SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT);
> if (zonefs_inode_cachep == NULL)
> return -ENOMEM;
> return 0;

I do not really see a meaningful simplification here. Using kmem_cache_create()
directly is not *that* complicated... Also, this changes the name of the cache
from "zonefs_inode_cache" to "zonefs_inode_info".

--
Damien Le Moal
Western Digital Research


2024-02-19 08:58:04

by Kunwu Chan

[permalink] [raw]
Subject: Re: [PATCH] zonefs: Simplify the allocation of slab caches in zonefs_init_inodecache

Thanks for the reply.

On 2024/2/9 12:06, Damien Le Moal wrote:
> On 2/5/24 17:10, Kunwu Chan wrote:
>> Use the new KMEM_CACHE() macro instead of direct kmem_cache_create
>> to simplify the creation of SLAB caches.
>>
>> Signed-off-by: Kunwu Chan <[email protected]>
>> ---
>> fs/zonefs/super.c | 6 ++----
>> 1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
>> index 93971742613a..9b578e7007e9 100644
>> --- a/fs/zonefs/super.c
>> +++ b/fs/zonefs/super.c
>> @@ -1387,10 +1387,8 @@ static struct file_system_type zonefs_type = {
>>
>> static int __init zonefs_init_inodecache(void)
>> {
>> - zonefs_inode_cachep = kmem_cache_create("zonefs_inode_cache",
>> - sizeof(struct zonefs_inode_info), 0,
>> - (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT),
>> - NULL);
>> + zonefs_inode_cachep = KMEM_CACHE(zonefs_inode_info,
>> + SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD | SLAB_ACCOUNT);
>> if (zonefs_inode_cachep == NULL)
>> return -ENOMEM;
>> return 0;
>
> I do not really see a meaningful simplification here. Using kmem_cache_create()
The main reason is 'it hides all the 0 or NULL parameters'.
> directly is not *that* complicated... Also, this changes the name of the cache
> from "zonefs_inode_cache" to "zonefs_inode_info".
Cache name is used in /proc/slabinfo to identify this cache.
>

Thank again for taking the time to review and reply.

--
Thanks,
Kunwu