Re: [PATCH v5 2/3] mm/slub, kunit: add a KUnit test for SLUB debugging functionality

From: Vlastimil Babka
Date: Wed May 12 2021 - 06:31:02 EST


On 5/11/21 5:16 PM, Marco Elver wrote:
> On Tue, 11 May 2021 at 17:07, <glittao@xxxxxxxxx> wrote:
>> From: Oliver Glitta <glittao@xxxxxxxxx>
>>
>> SLUB has resiliency_test() function which is hidden behind #ifdef
>> SLUB_RESILIENCY_TEST that is not part of Kconfig, so nobody
>> runs it. KUnit should be a proper replacement for it.
>>
>> Try changing byte in redzone after allocation and changing
>> pointer to next free node, first byte, 50th byte and redzone
>> byte. Check if validation finds errors.
>>
>> There are several differences from the original resiliency test:
>> Tests create own caches with known state instead of corrupting
>> shared kmalloc caches.
>>
>> The corruption of freepointer uses correct offset, the original
>> resiliency test got broken with freepointer changes.
>>
>> Scratch changing random byte test, because it does not have
>> meaning in this form where we need deterministic results.
>>
>> Add new option CONFIG_SLUB_KUNIT_TEST in Kconfig.
>> Tests next_pointer, first_word and clobber_50th_byte do not run
>> with KASAN option on. Because the test deliberately modifies non-allocated
>> objects.
>>
>> Use kunit_resource to count errors in cache and silence bug reports.
>> Count error whenever slab_bug() or slab_fix() is called or when
>> the count of pages is wrong.
>>
>> Signed-off-by: Oliver Glitta <glittao@xxxxxxxxx>

Reviewed-by: Vlastimil Babka <vbabka@xxxxxxx>

> I think I had already reviewed v4, and the changes here are fine:
>
> Reviewed-by: Marco Elver <elver@xxxxxxxxxx>
>
> Others who had reviewed/acked v4, probably need to re-ack/review.
> Note, I think if you addressed the comments and didn't change much
> else, you can typically carry the acks/reviews, unless the other
> person changed their mind explicitly.

FTR, besides me and Marco, v4 had also:

Acked-by: Daniel Latypov <dlatypov@xxxxxxxxxx>