On 9/27/21 11:03, Hyeonggon Yoo wrote: > Hello there, > > I've been working on adding 'lockless cache' on sl[au]b for a while. > But what it actually does is actually adding 'queuing' on slub. Yeah, I pointed out those threads from 2011 that called it exactly that... was there any conclusion why that was not ultimately merged? > So there is a fundamental question coming into my mind: > 'is SLAB considered legacy and deprecated?' To some extend, but not yet in a sense where we would have a deadline to get rid of it. In some contexts it's still being preferred, AFAIK. But it's okay if new optional features require just SLUB - for example PREEMPT_RT. > It seems there are little development on SLAB and people think that > SLAB is legacy and deprecated, so CONFIG_SLUB is used by default. > > But I think both has pros and cons for their own: > SLAB: more temporal locality (cache friendly) > but high usage of memory, and less spatial locality (TLB misses) than SLUB. > > SLUB: less temporal locality (less cache friendly) than SLAB > but more spatial locality (TLB hit), and low usage of memory > and good debugging feature. I'm not so sure about the usage of memory, SLUB can easily use more I believe. Instead of caching some arrays of objects it will have one or more private slabs per cpu, and the slabs are larger-order pages. > Why do people say SLAB is deprecated/legacy? Do they? > Thanks, > Hyeonggon >