Re: [PATCH 0/7] remove SLOB and allow kfree() with kmem_cache_alloc()

Vlastimil Babka
2023-03-13T16:36:50Z

On 3/12/23 10:51, Mike Rapoport wrote:
> Hi Vlastimil,
>
> On Fri, Mar 10, 2023 at 11:32:02AM +0100, Vlastimil Babka wrote:
>> Also in git:
>> https://git.kernel.org/vbabka/h/slab-remove-slob-v1r1
>>
>> The SLOB allocator was deprecated in 6.2 so I think we can start
>> exposing the complete removal in for-next and aim at 6.4 if there are no
>> complaints.
>>
>> Besides code cleanup, the main immediate benefit will be allowing
>> kfree() family of function to work on kmem_cache_alloc() objects (Patch
>> 7), which was incompatible with SLOB.
>>
>> This includes kfree_rcu() so I've updated the comment there to remove
>> the mention of potential future addition of kmem_cache_free_rcu() as
>> there should be no need for that now.
>>
>> Otherwise it's straightforward. Patch 2 is a cleanup in net area, that I
>> can either handle in slab tree or submit in net after SLOB is removed.
>> Another cleanup in tomoyo is already in the tomoyo tree as that didn't
>> need to wait until SLOB removal.
>>
>> Vlastimil Babka (7):
>> mm/slob: remove CONFIG_SLOB
>> net: skbuff: remove SLOB-specific ifdefs
>> mm, page_flags: remove PG_slob_free
>> mm, pagemap: remove SLOB and SLQB from comments and documentation
>> mm/slab: remove CONFIG_SLOB code from slab common code
>> mm/slob: remove slob.c
>> mm/slab: document kfree() as allowed for kmem_cache_alloc() objects
>>
>> Documentation/admin-guide/mm/pagemap.rst | 6 +-
>> Documentation/core-api/memory-allocation.rst | 15 +-
>> fs/proc/page.c | 5 +-
>> include/linux/page-flags.h | 4 -
>> include/linux/rcupdate.h | 6 +-
>> include/linux/slab.h | 39 -
>> init/Kconfig | 2 +-
>> kernel/configs/tiny.config | 1 -
>> mm/Kconfig | 22 -
>> mm/Makefile | 1 -
>> mm/slab.h | 61 --
>> mm/slab_common.c | 7 +-
>> mm/slob.c | 757 -------------------
>> net/core/skbuff.c | 16 -
>> tools/mm/page-types.c | 6 +-
>> 15 files changed, 23 insertions(+), 925 deletions(-)
>> delete mode 100644 mm/slob.c
>
> git grep -in slob still gives a couple of matches. I've dropped the
> irrelevant ones it it left me with these:
>
> CREDITS:14:D: SLOB slab allocator

I think it wouldn't be fair to remove that one as it's a historical record
of some sort?

> kernel/trace/ring_buffer.c:358: * Also stolen from mm/slob.c. Thanks to Mathieu Desnoyers for pointing
> mm/Kconfig:251: SLOB allocator and is not recommended for systems with more than

Yeah that's a help text for SLUB_TINY which can still help those who migrate
from SLOB.

> mm/Makefile:25:KCOV_INSTRUMENT_slob.o := n

That one I will remove, thanks!

> Except the comment in kernel/trace/ring_buffer.c all are trivial.
>
> As for the comment in ring_buffer.c, it looks completely irrelevant at this
> point.
>
> @Steve?
>
>> --
>> 2.39.2
>>
>