Messages in this thread | | | Subject | Re: [PATCH v4 2/3] mm/slub, kunit: add a KUnit test for SLUB debugging functionality | From | Vlastimil Babka <> | Date | Thu, 15 Apr 2021 12:30:08 +0200 |
| |
On 4/13/21 12:07 PM, glittao@gmail.com wrote: > From: Oliver Glitta <glittao@gmail.com> > > 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. > Because the test deliberatly modifies non-allocated objects, it depends on > !KASAN which would have otherwise prevented that. > > 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@gmail.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
(again with a disclaimer that I'm the advisor of Oliver's student project)
| |