2024-03-12 10:07:59

by Vlastimil Babka

[permalink] [raw]
Subject: [GIT PULL] slab updates for 6.9

Hi Linus,

please pull the latest slab updates from:

git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.9

I'm not aware of any merge conflicts this time.

Thanks,
Vlastimil

======================================

- Freelist loading optimization (Chengming Zhou)

When the per-cpu slab is depleted and a new one loaded from the cpu partial
list, optimize the loading to avoid an irq enable/disable cycle. This results
in a 3.5% performance improvement on the "perf bench sched messaging" test.

- Kernel boot parameters cleanup after SLAB removal (Xiongwei Song)

Due to two different main slab implementations we've had boot parameters
prefixed either slab_ and slub_ with some later becoming an alias as both
implementations gained the same functionality (i.e. slab_nomerge vs
slub_nomerge). In order to eventually get rid of the implementation-specific
names, the canonical and documented parameters are now all prefixed slab_
and the slub_ variants become deprecated but still working aliases.

- SLAB_ kmem_cache creation flags cleanup (Vlastimil Babka)

The flags had hardcoded #define values which became tedious and error-prone
when adding new ones. Assign the values via an enum that takes care of
providing unique bit numbers. Also deprecate SLAB_MEM_SPREAD which was only
used by SLAB, so it's a no-op since SLAB removal. Assign it an explicit zero
value. The removals of the flag usage are handled independently in the
respective subsystems, with a final removal of any leftover usage planned
for the next release.

- Misc cleanups and fixes (Chengming Zhou, Xiaolei Wang, Zheng Yejian)

Includes removal of unused code or function parameters and a fix of a
memleak.

----------------------------------------------------------------
Chengming Zhou (7):
mm/slub: directly load freelist from cpu partial slab in the likely case
mm/slub: remove full list manipulation for non-debug slab
mm/slub: remove unused parameter in next_freelist_entry()
mm, slab: remove unused object_size parameter in kmem_cache_flags()
mm, slab: fix the comment of cpu partial list
mm, slab: remove the corner case of inc_slabs_node()
slab: remove PARTIAL_NODE slab_state

Vlastimil Babka (6):
mm, slab: deprecate SLAB_MEM_SPREAD flag
mm, slab: use an enum to define SLAB_ cache creation flags
mm, slab, kasan: replace kasan_never_merge() with SLAB_NO_MERGE
mm, slab: remove memcg_from_slab_obj()
Merge branch 'slab/for-6.9/optimize-get-freelist' into slab/for-linus
Merge branch 'slab/for-6.9/slab-flag-cleanups' into slab/for-linus

Xiaolei Wang (1):
mm/slab: Fix a kmemleak in kmem_cache_destroy()

Xiongwei Song (4):
Documentation: kernel-parameters: remove noaliencache
mm/slub: unify all sl[au]b parameters with "slab_$param"
mm/slub: replace slub_$params with slab_$params in slub.rst
mm/slub: make the description of slab_min_objects helpful in doc

Zheng Yejian (1):
mm/slub: remove parameter 'flags' in create_kmalloc_caches()

Documentation/admin-guide/kernel-parameters.txt | 75 +++++++--------
Documentation/mm/slub.rst | 60 ++++++------
drivers/misc/lkdtm/heap.c | 2 +-
include/linux/kasan.h | 6 --
include/linux/slab.h | 97 ++++++++++++++------
mm/Kconfig.debug | 6 +-
mm/kasan/generic.c | 22 ++---
mm/slab.h | 11 +--
mm/slab_common.c | 29 +++---
mm/slub.c | 116 ++++++++++--------------
tools/include/linux/slab.h | 1 -
11 files changed, 210 insertions(+), 215 deletions(-)


2024-03-13 03:55:08

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] slab updates for 6.9

On Tue, 12 Mar 2024 at 02:55, Vlastimil Babka <[email protected]> wrote:
>
> Also deprecate SLAB_MEM_SPREAD which was only
> used by SLAB, so it's a no-op since SLAB removal. Assign it an explicit zero
> value. The removals of the flag usage are handled independently in the
> respective subsystems, with a final removal of any leftover usage planned
> for the next release.

I already had the patch ready to go:

https://lore.kernel.org/all/CAHk-=wji0u+OOtmAOD-5JV3SXcRJF___k_+8XNKmak0yd5vW1Q@mail.gmail.com/

so I just did a "git stash apply" and got rid of the final stragglers.
No need to have various random maintainers have to worry about a flag
that hasn't had any meaning since 6.7, and very little before that
either.

Linus

2024-03-13 04:11:49

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] slab updates for 6.9

The pull request you sent on Tue, 12 Mar 2024 10:55:33 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.9

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/0ea680eda6c9f59a9512f8b0dd4abf229bb9f6cf

Thank you!

--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

2024-03-13 05:11:05

by Chengming Zhou

[permalink] [raw]
Subject: Re: [GIT PULL] slab updates for 6.9

On 2024/3/13 11:54, Linus Torvalds wrote:
> On Tue, 12 Mar 2024 at 02:55, Vlastimil Babka <[email protected]> wrote:
>>
>> Also deprecate SLAB_MEM_SPREAD which was only
>> used by SLAB, so it's a no-op since SLAB removal. Assign it an explicit zero
>> value. The removals of the flag usage are handled independently in the
>> respective subsystems, with a final removal of any leftover usage planned
>> for the next release.
>
> I already had the patch ready to go:
>
> https://lore.kernel.org/all/CAHk-=wji0u+OOtmAOD-5JV3SXcRJF___k_+8XNKmak0yd5vW1Q@mail.gmail.com/
>
> so I just did a "git stash apply" and got rid of the final stragglers.
> No need to have various random maintainers have to worry about a flag
> that hasn't had any meaning since 6.7, and very little before that
> either.

Great! It's better. Thanks for doing this.


2024-03-13 09:28:08

by Vlastimil Babka

[permalink] [raw]
Subject: Re: [GIT PULL] slab updates for 6.9



On 3/13/24 04:54, Linus Torvalds wrote:
> On Tue, 12 Mar 2024 at 02:55, Vlastimil Babka <[email protected]> wrote:
>>
>> Also deprecate SLAB_MEM_SPREAD which was only
>> used by SLAB, so it's a no-op since SLAB removal. Assign it an explicit zero
>> value. The removals of the flag usage are handled independently in the
>> respective subsystems, with a final removal of any leftover usage planned
>> for the next release.
>
> I already had the patch ready to go:
>
> https://lore.kernel.org/all/CAHk-=wji0u+OOtmAOD-5JV3SXcRJF___k_+8XNKmak0yd5vW1Q@mail.gmail.com/

Aha, missed that thread.

> so I just did a "git stash apply" and got rid of the final stragglers.
> No need to have various random maintainers have to worry about a flag
> that hasn't had any meaning since 6.7, and very little before that
> either.

Noted, thanks a lot.

> Linus