Re: mm: slub: invalid memory access in setup_object

Sasha Levin
2014-07-01T21:52:35Z

On 07/01/2014 05:49 PM, Andrew Morton wrote:
> On Tue, 1 Jul 2014 09:58:52 -0500 (CDT) Christoph Lameter <cl@gentwo.org> wrote:
>
>> On Mon, 30 Jun 2014, David Rientjes wrote:
>>
>>> It's not at all clear to me that that patch is correct. Wei?
>>
>> Looks ok to me. But I do not like the convoluted code in new_slab() which
>> Wei's patch does not make easier to read. Makes it difficult for the
>> reader to see whats going on.
>>
>> Lets drop the use of the variable named "last".
>>
>>
>> Subject: slub: Only call setup_object once for each object
>>
>> Modify the logic for object initialization to be less convoluted
>> and initialize an object only once.
>>
>
> Well, um. Wei's changelog was much better:
>
> : When a kmem_cache is created with ctor, each object in the kmem_cache will
> : be initialized before use. In the slub implementation, the first object
> : will be initialized twice.
> :
> : This patch avoids the duplication of initialization of the first object.
> :
> : Fixes commit 7656c72b5a63: ("SLUB: add macros for scanning objects in a
> : slab").
>
> I can copy that text over and add the reported-by etc (ho hum) but I
> have a tiny feeling that this patch hasn't been rigorously tested?
> Perhaps someone (Wei?) can do that?
>
> And we still don't know why Sasha's kernel went oops.

I only saw this oops once, and after David's message yesterday I tried reverting
the patch he pointed out, but not much changed.

Is there a better way to stress test slub?

Thanks,
Sasha