On Wed, Apr 22, 2026 at 7:47 PM Aaron Tomlin <[email protected]> wrote: > > On Mon, Apr 20, 2026 at 03:11:52PM +0200, Marco Crivellari wrote: > > Without it, I guess the kmalloc() in `group_mask_cpus_evenly()` will > > return ZERO_SIZE_PTR: > > Hi Marco, > > Thank you for reviewing the patch. > > You are correct. If numgrps is 0, __do_kmalloc_node() will > return ZERO_SIZE_PTR. > > > Should this check be added or it is not needed? Or maybe rely on > > `ZERO_OR_NULL_PTR()` ? > > - File: mm/slub.c > > 5275 static __always_inline > 5276 void *__do_kmalloc_node(size_t size, kmem_buckets *b, gfp_t flags, > int node, > 5277 unsigned long caller) > 5278 { > 5279 struct kmem_cache *s; > 5280 void *ret; > : > 5289 if (unlikely(!size)) > 5290 return ZERO_SIZE_PTR; > : > 5298 } > > Regarding your suggestion: rather than relying on ZERO_OR_NULL_PTR() after > the fact, I think it is much cleaner to just add the early exit at the very > beginning of the function, exactly as group_cpus_evenly() does. It avoids > the allocator path entirely.
Hi, Cool, I think that's the right thing indeed. Thanks! -- Marco Crivellari SUSE Labs

