2024-02-24 13:48:15

by Chengming Zhou

[permalink] [raw]
Subject: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage

From: Chengming Zhou <[email protected]>

The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
its usage so we can delete it from slab. No functional change.

Signed-off-by: Chengming Zhou <[email protected]>
---
fs/ceph/super.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 5ec102f6b1ac..4dcbbaa297f6 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -928,36 +928,36 @@ static int __init init_caches(void)
ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
sizeof(struct ceph_inode_info),
__alignof__(struct ceph_inode_info),
- SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
- SLAB_ACCOUNT, ceph_inode_init_once);
+ SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
+ ceph_inode_init_once);
if (!ceph_inode_cachep)
return -ENOMEM;

- ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
+ ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
if (!ceph_cap_cachep)
goto bad_cap;
- ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
+ ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
if (!ceph_cap_snap_cachep)
goto bad_cap_snap;
ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
- SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
+ SLAB_RECLAIM_ACCOUNT);
if (!ceph_cap_flush_cachep)
goto bad_cap_flush;

ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
- SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
+ SLAB_RECLAIM_ACCOUNT);
if (!ceph_dentry_cachep)
goto bad_dentry;

- ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
+ ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
if (!ceph_file_cachep)
goto bad_file;

- ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
+ ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
if (!ceph_dir_file_cachep)
goto bad_dir_file;

- ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
+ ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
if (!ceph_mds_request_cachep)
goto bad_mds_req;

--
2.40.1



2024-02-26 01:43:45

by Xiubo Li

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage

Hi Chengming,

Thanks for your patch.

BTW, could you share the link of the relevant patches to mark this a no-op ?

Thanks

- Xiubo

On 2/24/24 21:47, [email protected] wrote:
> From: Chengming Zhou <[email protected]>
>
> The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
> its usage so we can delete it from slab. No functional change.
>
> Signed-off-by: Chengming Zhou <[email protected]>
> ---
> fs/ceph/super.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
> index 5ec102f6b1ac..4dcbbaa297f6 100644
> --- a/fs/ceph/super.c
> +++ b/fs/ceph/super.c
> @@ -928,36 +928,36 @@ static int __init init_caches(void)
> ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
> sizeof(struct ceph_inode_info),
> __alignof__(struct ceph_inode_info),
> - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
> - SLAB_ACCOUNT, ceph_inode_init_once);
> + SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
> + ceph_inode_init_once);
> if (!ceph_inode_cachep)
> return -ENOMEM;
>
> - ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
> + ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
> if (!ceph_cap_cachep)
> goto bad_cap;
> - ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
> + ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
> if (!ceph_cap_snap_cachep)
> goto bad_cap_snap;
> ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
> - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
> + SLAB_RECLAIM_ACCOUNT);
> if (!ceph_cap_flush_cachep)
> goto bad_cap_flush;
>
> ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
> - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
> + SLAB_RECLAIM_ACCOUNT);
> if (!ceph_dentry_cachep)
> goto bad_dentry;
>
> - ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
> + ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
> if (!ceph_file_cachep)
> goto bad_file;
>
> - ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
> + ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
> if (!ceph_dir_file_cachep)
> goto bad_dir_file;
>
> - ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
> + ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
> if (!ceph_mds_request_cachep)
> goto bad_mds_req;
>


2024-02-26 02:43:11

by Chengming Zhou

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage

On 2024/2/26 09:43, Xiubo Li wrote:
> Hi Chengming,
>
> Thanks for your patch.
>
> BTW, could you share the link of the relevant patches to mark this a no-op ?
Update changelog to make it clearer:

The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
removed as of v6.8-rc1, so it became a dead flag. And the series[1]
went on to mark it obsolete to avoid confusion for users. Here we
can just remove all its users, which has no functional change.

[1] https://lore.kernel.org/all/[email protected]/

Thanks!

>
> Thanks
>
> - Xiubo
>
> On 2/24/24 21:47, [email protected] wrote:
>> From: Chengming Zhou <[email protected]>
>>
>> The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
>> its usage so we can delete it from slab. No functional change.
>>
>> Signed-off-by: Chengming Zhou <[email protected]>
>> ---
>>   fs/ceph/super.c | 18 +++++++++---------
>>   1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
>> index 5ec102f6b1ac..4dcbbaa297f6 100644
>> --- a/fs/ceph/super.c
>> +++ b/fs/ceph/super.c
>> @@ -928,36 +928,36 @@ static int __init init_caches(void)
>>       ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
>>                         sizeof(struct ceph_inode_info),
>>                         __alignof__(struct ceph_inode_info),
>> -                      SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
>> -                      SLAB_ACCOUNT, ceph_inode_init_once);
>> +                      SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
>> +                      ceph_inode_init_once);
>>       if (!ceph_inode_cachep)
>>           return -ENOMEM;
>>   -    ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
>> +    ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
>>       if (!ceph_cap_cachep)
>>           goto bad_cap;
>> -    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
>> +    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
>>       if (!ceph_cap_snap_cachep)
>>           goto bad_cap_snap;
>>       ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
>> -                       SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>> +                       SLAB_RECLAIM_ACCOUNT);
>>       if (!ceph_cap_flush_cachep)
>>           goto bad_cap_flush;
>>         ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
>> -                    SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>> +                    SLAB_RECLAIM_ACCOUNT);
>>       if (!ceph_dentry_cachep)
>>           goto bad_dentry;
>>   -    ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
>> +    ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
>>       if (!ceph_file_cachep)
>>           goto bad_file;
>>   -    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
>> +    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
>>       if (!ceph_dir_file_cachep)
>>           goto bad_dir_file;
>>   -    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
>> +    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
>>       if (!ceph_mds_request_cachep)
>>           goto bad_mds_req;
>>  
>

2024-02-26 04:30:29

by Chengming Zhou

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage

On 2024/2/26 12:23, Xiubo Li wrote:
>
> On 2/26/24 10:42, Chengming Zhou wrote:
>> On 2024/2/26 09:43, Xiubo Li wrote:
>>> Hi Chengming,
>>>
>>> Thanks for your patch.
>>>
>>> BTW, could you share the link of the relevant patches to mark this a no-op ?
>> Update changelog to make it clearer:
>>
>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>> removed as of v6.8-rc1, so it became a dead flag. And the series[1]
>> went on to mark it obsolete to avoid confusion for users. Here we
>> can just remove all its users, which has no functional change.
>>
>> [1] https://lore.kernel.org/all/[email protected]/
>
> Thanks for your quick feedback.
>
> BTW, I couldn't find this change in Linus' tree in the master and even the v6.8-rc1 tag, please see https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/linux/slab.h?h=master.
>
> Did I miss something ? Or has this patch been merged ?

You're right, this patch hasn't been merged. But it's already a dead flag as of v6.8-rc1.

Update changelog to make it clearer:

The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
removed as of v6.8-rc1, so it became a dead flag since the commit
16a1d968358a ("mm/slab: remove mm/slab.c and slab_def.h"). And the
series[1] went on to mark it obsolete to avoid confusion for users.
Here we can just remove all its users, which has no functional change.

[1] https://lore.kernel.org/all/[email protected]/

Does this look clearer to you? I can improve it if there is still confusion.

Thanks!

>
> - Xiubo
>
>> Thanks!
>>
>>> Thanks
>>>
>>> - Xiubo
>>>
>>> On 2/24/24 21:47, [email protected] wrote:
>>>> From: Chengming Zhou <[email protected]>
>>>>
>>>> The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
>>>> its usage so we can delete it from slab. No functional change.
>>>>
>>>> Signed-off-by: Chengming Zhou <[email protected]>
>>>> ---
>>>>    fs/ceph/super.c | 18 +++++++++---------
>>>>    1 file changed, 9 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
>>>> index 5ec102f6b1ac..4dcbbaa297f6 100644
>>>> --- a/fs/ceph/super.c
>>>> +++ b/fs/ceph/super.c
>>>> @@ -928,36 +928,36 @@ static int __init init_caches(void)
>>>>        ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
>>>>                          sizeof(struct ceph_inode_info),
>>>>                          __alignof__(struct ceph_inode_info),
>>>> -                      SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
>>>> -                      SLAB_ACCOUNT, ceph_inode_init_once);
>>>> +                      SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
>>>> +                      ceph_inode_init_once);
>>>>        if (!ceph_inode_cachep)
>>>>            return -ENOMEM;
>>>>    -    ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
>>>> +    ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
>>>>        if (!ceph_cap_cachep)
>>>>            goto bad_cap;
>>>> -    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
>>>> +    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
>>>>        if (!ceph_cap_snap_cachep)
>>>>            goto bad_cap_snap;
>>>>        ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
>>>> -                       SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>>> +                       SLAB_RECLAIM_ACCOUNT);
>>>>        if (!ceph_cap_flush_cachep)
>>>>            goto bad_cap_flush;
>>>>          ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
>>>> -                    SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>>> +                    SLAB_RECLAIM_ACCOUNT);
>>>>        if (!ceph_dentry_cachep)
>>>>            goto bad_dentry;
>>>>    -    ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
>>>> +    ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
>>>>        if (!ceph_file_cachep)
>>>>            goto bad_file;
>>>>    -    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
>>>> +    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
>>>>        if (!ceph_dir_file_cachep)
>>>>            goto bad_dir_file;
>>>>    -    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
>>>> +    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
>>>>        if (!ceph_mds_request_cachep)
>>>>            goto bad_mds_req;
>>>>   
>

2024-02-26 04:32:32

by Xiubo Li

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage


On 2/26/24 10:42, Chengming Zhou wrote:
> On 2024/2/26 09:43, Xiubo Li wrote:
>> Hi Chengming,
>>
>> Thanks for your patch.
>>
>> BTW, could you share the link of the relevant patches to mark this a no-op ?
> Update changelog to make it clearer:
>
> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
> removed as of v6.8-rc1, so it became a dead flag. And the series[1]
> went on to mark it obsolete to avoid confusion for users. Here we
> can just remove all its users, which has no functional change.
>
> [1] https://lore.kernel.org/all/[email protected]/

Thanks for your quick feedback.

BTW, I couldn't find this change in Linus' tree in the master and even
the v6.8-rc1 tag, please see
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/linux/slab.h?h=master.

Did I miss something ? Or has this patch been merged ?

- Xiubo

> Thanks!
>
>> Thanks
>>
>> - Xiubo
>>
>> On 2/24/24 21:47, [email protected] wrote:
>>> From: Chengming Zhou <[email protected]>
>>>
>>> The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
>>> its usage so we can delete it from slab. No functional change.
>>>
>>> Signed-off-by: Chengming Zhou <[email protected]>
>>> ---
>>>   fs/ceph/super.c | 18 +++++++++---------
>>>   1 file changed, 9 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
>>> index 5ec102f6b1ac..4dcbbaa297f6 100644
>>> --- a/fs/ceph/super.c
>>> +++ b/fs/ceph/super.c
>>> @@ -928,36 +928,36 @@ static int __init init_caches(void)
>>>       ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
>>>                         sizeof(struct ceph_inode_info),
>>>                         __alignof__(struct ceph_inode_info),
>>> -                      SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
>>> -                      SLAB_ACCOUNT, ceph_inode_init_once);
>>> +                      SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
>>> +                      ceph_inode_init_once);
>>>       if (!ceph_inode_cachep)
>>>           return -ENOMEM;
>>>   -    ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
>>> +    ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
>>>       if (!ceph_cap_cachep)
>>>           goto bad_cap;
>>> -    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
>>> +    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
>>>       if (!ceph_cap_snap_cachep)
>>>           goto bad_cap_snap;
>>>       ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
>>> -                       SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>> +                       SLAB_RECLAIM_ACCOUNT);
>>>       if (!ceph_cap_flush_cachep)
>>>           goto bad_cap_flush;
>>>         ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
>>> -                    SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>> +                    SLAB_RECLAIM_ACCOUNT);
>>>       if (!ceph_dentry_cachep)
>>>           goto bad_dentry;
>>>   -    ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
>>> +    ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
>>>       if (!ceph_file_cachep)
>>>           goto bad_file;
>>>   -    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
>>> +    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
>>>       if (!ceph_dir_file_cachep)
>>>           goto bad_dir_file;
>>>   -    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
>>> +    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
>>>       if (!ceph_mds_request_cachep)
>>>           goto bad_mds_req;
>>>


2024-02-26 04:54:31

by Xiubo Li

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage


On 2/26/24 12:30, Chengming Zhou wrote:
> On 2024/2/26 12:23, Xiubo Li wrote:
>> On 2/26/24 10:42, Chengming Zhou wrote:
>>> On 2024/2/26 09:43, Xiubo Li wrote:
>>>> Hi Chengming,
>>>>
>>>> Thanks for your patch.
>>>>
>>>> BTW, could you share the link of the relevant patches to mark this a no-op ?
>>> Update changelog to make it clearer:
>>>
>>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>>> removed as of v6.8-rc1, so it became a dead flag. And the series[1]
>>> went on to mark it obsolete to avoid confusion for users. Here we
>>> can just remove all its users, which has no functional change.
>>>
>>> [1] https://lore.kernel.org/all/[email protected]/
>> Thanks for your quick feedback.
>>
>> BTW, I couldn't find this change in Linus' tree in the master and even the v6.8-rc1 tag, please see https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/linux/slab.h?h=master.
>>
>> Did I miss something ? Or has this patch been merged ?
> You're right, this patch hasn't been merged. But it's already a dead flag as of v6.8-rc1.
>
> Update changelog to make it clearer:
>
> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
> removed as of v6.8-rc1, so it became a dead flag since the commit
> 16a1d968358a ("mm/slab: remove mm/slab.c and slab_def.h"). And the
> series[1] went on to mark it obsolete to avoid confusion for users.
> Here we can just remove all its users, which has no functional change.
>
> [1] https://lore.kernel.org/all/[email protected]/
>
> Does this look clearer to you? I can improve it if there is still confusion.

Yeah, much clearer, thanks!

Maybe we should just wait for the [1] to get merged first ?

Ilya, what do you think ?

Thanks

- Xiubo


> Thanks!
>
>> - Xiubo
>>
>>> Thanks!
>>>
>>>> Thanks
>>>>
>>>> - Xiubo
>>>>
>>>> On 2/24/24 21:47, [email protected] wrote:
>>>>> From: Chengming Zhou <[email protected]>
>>>>>
>>>>> The SLAB_MEM_SPREAD flag is already a no-op as of 6.8-rc1, remove
>>>>> its usage so we can delete it from slab. No functional change.
>>>>>
>>>>> Signed-off-by: Chengming Zhou <[email protected]>
>>>>> ---
>>>>>    fs/ceph/super.c | 18 +++++++++---------
>>>>>    1 file changed, 9 insertions(+), 9 deletions(-)
>>>>>
>>>>> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
>>>>> index 5ec102f6b1ac..4dcbbaa297f6 100644
>>>>> --- a/fs/ceph/super.c
>>>>> +++ b/fs/ceph/super.c
>>>>> @@ -928,36 +928,36 @@ static int __init init_caches(void)
>>>>>        ceph_inode_cachep = kmem_cache_create("ceph_inode_info",
>>>>>                          sizeof(struct ceph_inode_info),
>>>>>                          __alignof__(struct ceph_inode_info),
>>>>> -                      SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|
>>>>> -                      SLAB_ACCOUNT, ceph_inode_init_once);
>>>>> +                      SLAB_RECLAIM_ACCOUNT|SLAB_ACCOUNT,
>>>>> +                      ceph_inode_init_once);
>>>>>        if (!ceph_inode_cachep)
>>>>>            return -ENOMEM;
>>>>>    -    ceph_cap_cachep = KMEM_CACHE(ceph_cap, SLAB_MEM_SPREAD);
>>>>> +    ceph_cap_cachep = KMEM_CACHE(ceph_cap, 0);
>>>>>        if (!ceph_cap_cachep)
>>>>>            goto bad_cap;
>>>>> -    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, SLAB_MEM_SPREAD);
>>>>> +    ceph_cap_snap_cachep = KMEM_CACHE(ceph_cap_snap, 0);
>>>>>        if (!ceph_cap_snap_cachep)
>>>>>            goto bad_cap_snap;
>>>>>        ceph_cap_flush_cachep = KMEM_CACHE(ceph_cap_flush,
>>>>> -                       SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>>>> +                       SLAB_RECLAIM_ACCOUNT);
>>>>>        if (!ceph_cap_flush_cachep)
>>>>>            goto bad_cap_flush;
>>>>>          ceph_dentry_cachep = KMEM_CACHE(ceph_dentry_info,
>>>>> -                    SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD);
>>>>> +                    SLAB_RECLAIM_ACCOUNT);
>>>>>        if (!ceph_dentry_cachep)
>>>>>            goto bad_dentry;
>>>>>    -    ceph_file_cachep = KMEM_CACHE(ceph_file_info, SLAB_MEM_SPREAD);
>>>>> +    ceph_file_cachep = KMEM_CACHE(ceph_file_info, 0);
>>>>>        if (!ceph_file_cachep)
>>>>>            goto bad_file;
>>>>>    -    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, SLAB_MEM_SPREAD);
>>>>> +    ceph_dir_file_cachep = KMEM_CACHE(ceph_dir_file_info, 0);
>>>>>        if (!ceph_dir_file_cachep)
>>>>>            goto bad_dir_file;
>>>>>    -    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, SLAB_MEM_SPREAD);
>>>>> +    ceph_mds_request_cachep = KMEM_CACHE(ceph_mds_request, 0);
>>>>>        if (!ceph_mds_request_cachep)
>>>>>            goto bad_mds_req;
>>>>>


2024-02-26 09:16:48

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage

On 2/26/24 05:54, Xiubo Li wrote:
>
> On 2/26/24 12:30, Chengming Zhou wrote:
>> On 2024/2/26 12:23, Xiubo Li wrote:
>>> On 2/26/24 10:42, Chengming Zhou wrote:
>>>> On 2024/2/26 09:43, Xiubo Li wrote:
>>>>> Hi Chengming,
>>>>>
>>>>> Thanks for your patch.
>>>>>
>>>>> BTW, could you share the link of the relevant patches to mark this a no-op ?
>>>> Update changelog to make it clearer:
>>>>
>>>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>>>> removed as of v6.8-rc1, so it became a dead flag. And the series[1]
>>>> went on to mark it obsolete to avoid confusion for users. Here we
>>>> can just remove all its users, which has no functional change.
>>>>
>>>> [1] https://lore.kernel.org/all/[email protected]/
>>> Thanks for your quick feedback.
>>>
>>> BTW, I couldn't find this change in Linus' tree in the master and even the v6.8-rc1 tag, please see https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/linux/slab.h?h=master.
>>>
>>> Did I miss something ? Or has this patch been merged ?
>> You're right, this patch hasn't been merged. But it's already a dead flag as of v6.8-rc1.
>>
>> Update changelog to make it clearer:
>>
>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>> removed as of v6.8-rc1, so it became a dead flag since the commit
>> 16a1d968358a ("mm/slab: remove mm/slab.c and slab_def.h"). And the
>> series[1] went on to mark it obsolete to avoid confusion for users.
>> Here we can just remove all its users, which has no functional change.
>>
>> [1] https://lore.kernel.org/all/[email protected]/
>>
>> Does this look clearer to you? I can improve it if there is still confusion.
>
> Yeah, much clearer, thanks!
>
> Maybe we should just wait for the [1] to get merged first ?

It's really not necessary to wait, [1] just makes it explicit but the flag
is really effectively dead since v6.8-rc1 because nothing acts on it.


2024-02-26 10:08:27

by Xiubo Li

[permalink] [raw]
Subject: Re: [PATCH] ceph: remove SLAB_MEM_SPREAD flag usage


On 2/26/24 16:32, Vlastimil Babka wrote:
> On 2/26/24 05:54, Xiubo Li wrote:
>> On 2/26/24 12:30, Chengming Zhou wrote:
>>> On 2024/2/26 12:23, Xiubo Li wrote:
>>>> On 2/26/24 10:42, Chengming Zhou wrote:
>>>>> On 2024/2/26 09:43, Xiubo Li wrote:
>>>>>> Hi Chengming,
>>>>>>
>>>>>> Thanks for your patch.
>>>>>>
>>>>>> BTW, could you share the link of the relevant patches to mark this a no-op ?
>>>>> Update changelog to make it clearer:
>>>>>
>>>>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>>>>> removed as of v6.8-rc1, so it became a dead flag. And the series[1]
>>>>> went on to mark it obsolete to avoid confusion for users. Here we
>>>>> can just remove all its users, which has no functional change.
>>>>>
>>>>> [1] https://lore.kernel.org/all/[email protected]/
>>>> Thanks for your quick feedback.
>>>>
>>>> BTW, I couldn't find this change in Linus' tree in the master and even the v6.8-rc1 tag, please see https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/linux/slab.h?h=master.
>>>>
>>>> Did I miss something ? Or has this patch been merged ?
>>> You're right, this patch hasn't been merged. But it's already a dead flag as of v6.8-rc1.
>>>
>>> Update changelog to make it clearer:
>>>
>>> The SLAB_MEM_SPREAD flag used to be implemented in SLAB, which was
>>> removed as of v6.8-rc1, so it became a dead flag since the commit
>>> 16a1d968358a ("mm/slab: remove mm/slab.c and slab_def.h"). And the
>>> series[1] went on to mark it obsolete to avoid confusion for users.
>>> Here we can just remove all its users, which has no functional change.
>>>
>>> [1] https://lore.kernel.org/all/[email protected]/
>>>
>>> Does this look clearer to you? I can improve it if there is still confusion.
>> Yeah, much clearer, thanks!
>>
>> Maybe we should just wait for the [1] to get merged first ?
> It's really not necessary to wait, [1] just makes it explicit but the flag
> is really effectively dead since v6.8-rc1 because nothing acts on it.

Okay, will apply this to ceph-client tree and run the tests.

Thanks

- Xiubo