Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: fix comment for NODEMASK_ALLOC

Currently, NODEMASK_ALLOC allocates a nodemask_t with kmalloc when
NODES_SHIFT is higher than 8, otherwise it declares it within the stack.

The comment says that the reasoning behind this, is that nodemask_t will
be 256 bytes when NODES_SHIFT is higher than 8, but this is not true. For
example, NODES_SHIFT = 9 will give us a 64 bytes nodemask_t. Let us fix
up the comment for that.

Another thing is that it might make sense to let values lower than
128bytes be allocated in the stack. Although this all depends on the
depth of the stack (and this changes from function to function), I think
that 64 bytes is something we can easily afford. So we could even bump
the limit by 1 (from > 8 to > 9).

Link: http://lkml.kernel.org/r/20180820085516.9687-1-osalvador@techadventures.net
Signed-off-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Oscar Salvador and committed by
Linus Torvalds
5df66d30 c8bd134a

+1 -1
+1 -1
include/linux/nodemask.h
··· 518 518 * NODEMASK_ALLOC(type, name) allocates an object with a specified type and 519 519 * name. 520 520 */ 521 - #if NODES_SHIFT > 8 /* nodemask_t > 256 bytes */ 521 + #if NODES_SHIFT > 8 /* nodemask_t > 32 bytes */ 522 522 #define NODEMASK_ALLOC(type, name, gfp_flags) \ 523 523 type *name = kmalloc(sizeof(*name), gfp_flags) 524 524 #define NODEMASK_FREE(m) kfree(m)