Re: a question about slub in function __slab_free()

From: Xishi Qiu
Date: Wed Mar 02 2016 - 20:33:31 EST


On 2016/3/2 22:38, Joonsoo Kim wrote:

> 2016-03-02 21:26 GMT+09:00 Xishi Qiu <qiuxishi@xxxxxxxxxx>:
>> ___slab_alloc()
>> deactivate_slab()
>> add_full(s, n, page);
>> The page will be added to full list and the frozen is 0, right?
>>
>> __slab_free()
>> prior = page->freelist; // prior is NULL
>> was_frozen = new.frozen; // was_frozen is 0
>> ...
>> /*
>> * Slab was on no list before and will be
>> * partially empty
>> * We can defer the list move and instead
>> * freeze it.
>> */
>> new.frozen = 1;
>> ...
>>
>> I don't understand why "Slab was on no list before"?
>
> add_full() is defined only for CONFIG_SLUB_DEBUG.
> And, actual add happens if slub_debug=u is enabled.
> In other cases, fully used slab isn't attached on any list.
>
> Thanks.
>

Hi Joonsoo,

You are right, thank you very much!

>