Re: [QUESTION] is SLAB considered legacy and deprecated?
From: Vlastimil Babka <hidden>
Date: 2021-09-27 17:03:26
Also in:
lkml
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