Re: [PATCH 16/16] mm/slab: introduce new slab management type, OBJFREELIST_SLAB

From: Vlastimil Babka
Date: Wed Jan 27 2016 - 12:18:39 EST


On 01/27/2016 05:48 PM, Christoph Lameter wrote:
> On Wed, 27 Jan 2016, Vlastimil Babka wrote:
>
>>
>> Can you elaborate? Do we actually need an extendable linked array? Why not just
>> store the pointer to the next free object into the object, NULL for the last
>> one? I.e. a singly-linked list. We should never need to actually traverse it?
>>
>> freeing object obj:
>> *obj = page->freelist;
>> page->freelist = obj;
>>
>> allocating object:
>> obj = page->freelist;
>> page->freelist = *obj;
>> *obj = NULL;
>
> Well the single linked lists are a concept of another slab allocator. At
> what point do we rename SLAB to SLUB2?

OK. Perhaps a LSF/MM topic then to discuss whether we need both? What are the
remaining cases where SLAB is better choice, and can there be something done
about them in SLUB?

(I can imagine there were such discussions in the past, and I came to kernel
development only in 2013. In that case maybe enough time passed to revisit this?)