Re: Deprecating and removing SLOB

From: Yosry Ahmed
Date: Tue Nov 08 2022 - 15:14:32 EST


On Tue, Nov 8, 2022 at 10:47 AM Roman Gushchin <roman.gushchin@xxxxxxxxx> wrote:
>
> On Tue, Nov 08, 2022 at 04:55:29PM +0100, Vlastimil Babka wrote:
> > Hi,
> >
> > as we all know, we currently have three slab allocators. As we discussed at
> > LPC [1], it is my hope that one of these allocators has a future, and two of
> > them do not.
> >
> > The unsurprising reasons include code maintenance burden, other features
> > compatible with only a subset of allocators (or more effort spent on the
> > features), blocking API improvements (more on that below), and my inability
> > to pronounce SLAB and SLUB in a properly distinguishable way, without
> > resorting to spelling out the letters.
> >
> > I think (but may be proven wrong) that SLOB is the easier target of the two
> > to be removed, so I'd like to focus on it first.
>
> Great!
>
> SLOB is not supported by the kernel memory accounting code, so if we'll
> deprecate SLOB, we can remove all those annoying ifndefs.
>
> But I wonder if we can deprecate SLAB too? Or at least use the moment to
> ask every non-SLUB user on why they can't/don't want to use SLUB.
> Are there any known advantages of SLAB over SLUB?

We use SLAB at Google, but I am not the right person to answer the
question of why we can't/don't use SLUB. Adding Greg here who recently
looked into this and might have answers. I see David is already
tagged, he might have a good answer as well.

>
> Also, for memory-constrained users we might want to add some guide on how
> to configure SLUB to minimize the memory footprint.
>
> Thank you!
>
> Roman
>