Re: [RFC 02/26] mm, slub: allocate private object map for validate_slab_cache()

From: Vlastimil Babka
Date: Tue May 25 2021 - 06:37:06 EST

On 5/25/21 12:17 PM, Mel Gorman wrote:
> On Tue, May 25, 2021 at 01:39:22AM +0200, Vlastimil Babka wrote:
>> validate_slab_cache() is called either to handle a sysfs write, or from a
>> self-test context. In both situations it's straightforward to preallocate a
>> private object bitmap instead of grabbing the shared static one meant for
>> critical sections, so let's do that.
>> Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx>
>> <SNIP>
>> @@ -4685,10 +4685,17 @@ static long validate_slab_cache(struct kmem_cache *s)
>> int node;
>> unsigned long count = 0;
>> struct kmem_cache_node *n;
>> + unsigned long *obj_map;
>> +
>> + obj_map = bitmap_alloc(oo_objects(s->oo), GFP_KERNEL);
>> + if (!obj_map)
>> + return -ENOMEM;
> Most callers of validate_slab_cache don't care about the return value
> except when the validate sysfs file is written. Should a simply
> informational message be displayed for -ENOMEM in case a writer to
> validate fails and it's not obvious it was because of an allocation
> failure?

he other callers are all in the effectively dead resiliency_test() code, which
has meanwhile been replaced in mmotm by kunit tests meanwhile. But it's true
those don't check the results either for now.

> It's a fairly minor concern so whether you add a message or not

I think I'll rather fix up the tests. Or do you mean that -ENOMEM for a sysfs
write is also not enough and there should be a dmesg explanation for that case?

> Acked-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>