Re: [PATCH 0/1] mm: Remove the SLAB allocator

From: Vlastimil Babka
Date: Wed Apr 10 2019 - 04:02:42 EST


On 4/10/19 4:47 AM, Tobin C. Harding wrote:
> Recently a 2 year old bug was found in the SLAB allocator that crashes
> the kernel. This seems to imply that not that many people are using the
> SLAB allocator.

AFAIK that bug required CONFIG_DEBUG_SLAB_LEAK, not just SLAB. That
seems to imply not that many people are using SLAB when debugging and
yeah, SLUB has better debugging support. But I wouldn't dare to make the
broader implication :)

> Currently we have 3 slab allocators. Two is company three is a crowd -
> let's get rid of one.
>
> - The SLUB allocator has been the default since 2.6.23

Yeah, with a sophisticated reasoning :)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a0acd820807680d2ccc4ef3448387fcdbf152c73

> - The SLOB allocator is kinda sexy. Its only 664 LOC, the general
> design is outlined in KnR, and there is an optimisation taken from
> Knuth - say no more.
>
> If you are using the SLAB allocator please speak now or forever hold your peace ...

FWIW, our enterprise kernel use it (latest is 4.12 based), and openSUSE
kernels as well (with openSUSE Tumbleweed that includes latest
kernel.org stables). AFAIK we don't enable SLAB_DEBUG even in general
debug kernel flavours as it's just too slow.

IIRC last time Mel evaluated switching to SLUB, it wasn't a clear
winner, but I'll just CC him for details :)

> Testing:
>
> Build kernel with `make defconfig` (on x86_64 machine) followed by `make
> kvmconfig`. Then do the same and manually select SLOB. Boot both
> kernels in Qemu.
>
>
> thanks,
> Tobin.
>
>
> Tobin C. Harding (1):
> mm: Remove SLAB allocator
>
> include/linux/slab.h | 26 -
> kernel/cpu.c | 5 -
> mm/slab.c | 4493 ------------------------------------------
> mm/slab.h | 31 +-
> mm/slab_common.c | 20 +-
> 5 files changed, 5 insertions(+), 4570 deletions(-)
> delete mode 100644 mm/slab.c
>