mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
mm/vmalloc: add alignment info in warning print as possible failure reason
When running 'fix_align_alloc_test' case of test_vmalloc module with
command:
insmod ./test_vmalloc.ko run_test_mask=64
It will fail, which is the expected result, as the case increment
the alignment parameter gradually to 64bit limit. And the dmesg has
warning msg:
"vmalloc_test/0: vmalloc error: size 4096, vm_struct allocation failed, mode:0xdc0(GFP_KERNEL|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0"
It doesn't give the alignment info, which is the real reason for the
failure (not the 'size').
Add alignment info to the warning print to give the necessary hint
for possible failure reason, and the message will be:
"vmalloc_test/0: vmalloc error: size 4096, align 0x800000000000, vm_struct allocation failed, mode:0xdc0(GFP_KERNEL|__GFP_ZERO), nodemask=(null),cpuset=/,mems_allowed=0"
Link: https://lore.kernel.org/20260702112610.21589-1-feng.tang@linux.alibaba.com
Signed-off-by: Feng Tang <feng.tang@linux.alibaba.com>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
5737df3826
commit
923a89a91a
|
|
@ -4045,8 +4045,8 @@ void *__vmalloc_node_range_noprof(unsigned long size, unsigned long align,
|
|||
if (!area) {
|
||||
bool nofail = gfp_mask & __GFP_NOFAIL;
|
||||
warn_alloc(gfp_mask, NULL,
|
||||
"vmalloc error: size %lu, vm_struct allocation failed%s",
|
||||
size, (nofail) ? ". Retrying." : "");
|
||||
"vmalloc error: size %lu, align 0x%lx, vm_struct allocation failed%s",
|
||||
size, align, (nofail) ? ". Retrying." : "");
|
||||
if (nofail) {
|
||||
schedule_timeout_uninterruptible(1);
|
||||
goto again;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user