[PATCH v11 03/13] lib/group_cpus: Add group_mask_cpus_evenly()
Marco Crivellari
marco.crivellari at suse.com
Thu Apr 23 01:11:47 PDT 2026
On Wed, Apr 22, 2026 at 7:47 PM Aaron Tomlin <atomlin at atomlin.com> 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
More information about the Linux-nvme
mailing list