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

From: Mike Rapoport <[email-masked]>
Date: Sun, 12 Mar 2023 11:51:29 +0200

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.