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

Mike Rapoport
2023-03-12T09:51:39Z

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
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
mm/Makefile:25:KCOV_INSTRUMENT_slob.o := n

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
>

--
Sincerely yours,
Mike.