Re: [PATCH v3 1/2] memcg: Prevent memcg caches to be both OFF_SLAB & OBJFREELIST_SLAB

From: Thomas Garnier
Date: Mon Nov 07 2016 - 17:33:03 EST


On Mon, Nov 7, 2016 at 2:19 PM, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Mon, 7 Nov 2016 13:11:14 -0800 Thomas Garnier <thgarnie@xxxxxxxxxx> wrote:
>
>> From: Greg Thelen <gthelen@xxxxxxxxxx>
>>
>> While testing OBJFREELIST_SLAB integration with pagealloc, we found a
>> bug where kmem_cache(sys) would be created with both CFLGS_OFF_SLAB &
>> CFLGS_OBJFREELIST_SLAB.
>>
>> The original kmem_cache is created early making OFF_SLAB not possible.
>> When kmem_cache(sys) is created, OFF_SLAB is possible and if pagealloc
>> is enabled it will try to enable it first under certain conditions.
>> Given kmem_cache(sys) reuses the original flag, you can have both flags
>> at the same time resulting in allocation failures and odd behaviors.
>
> Can we please have a better description of the problems which this bug
> causes? Without this info it's unclear to me which kernel version(s)
> need the fix.
>
> Given that the bug is 6 months old I'm assuming "not very urgent".
>

I will add more details and send another round.

>> This fix discards allocator specific flags from memcg before calling
>> create_cache.
>>
>> Fixes: b03a017bebc4 ("mm/slab: introduce new slab management type, OBJFREELIST_SLAB")
>> Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx>
>> Tested-by: Thomas Garnier <thgarnie@xxxxxxxxxx>
>
> This should have had your signed-off-by, as you were on the delivery
> path. I've made that change.

Thanks Andrew.


--
Thomas