mm: vmalloc improve vmallocinfo
If we do that, output of files like /proc/vmallocinfo will show things like "vmalloc_32", "vmalloc_user", or whomever the caller was as the caller. This info is not as useful as the real caller of the allocation. So, proposal is to call __vmalloc_node node directly, with matching parameters to save the caller information Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c1279c4ef3
commit
8487784833
12
mm/vmalloc.c
12
mm/vmalloc.c
|
@ -1376,7 +1376,8 @@ void *vmalloc_user(unsigned long size)
|
|||
struct vm_struct *area;
|
||||
void *ret;
|
||||
|
||||
ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL);
|
||||
ret = __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
|
||||
PAGE_KERNEL, -1, __builtin_return_address(0));
|
||||
if (ret) {
|
||||
area = find_vm_area(ret);
|
||||
area->flags |= VM_USERMAP;
|
||||
|
@ -1421,7 +1422,8 @@ EXPORT_SYMBOL(vmalloc_node);
|
|||
|
||||
void *vmalloc_exec(unsigned long size)
|
||||
{
|
||||
return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC);
|
||||
return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
|
||||
-1, __builtin_return_address(0));
|
||||
}
|
||||
|
||||
#if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32)
|
||||
|
@ -1441,7 +1443,8 @@ void *vmalloc_exec(unsigned long size)
|
|||
*/
|
||||
void *vmalloc_32(unsigned long size)
|
||||
{
|
||||
return __vmalloc(size, GFP_VMALLOC32, PAGE_KERNEL);
|
||||
return __vmalloc_node(size, GFP_VMALLOC32, PAGE_KERNEL,
|
||||
-1, __builtin_return_address(0));
|
||||
}
|
||||
EXPORT_SYMBOL(vmalloc_32);
|
||||
|
||||
|
@ -1457,7 +1460,8 @@ void *vmalloc_32_user(unsigned long size)
|
|||
struct vm_struct *area;
|
||||
void *ret;
|
||||
|
||||
ret = __vmalloc(size, GFP_VMALLOC32 | __GFP_ZERO, PAGE_KERNEL);
|
||||
ret = __vmalloc_node(size, GFP_VMALLOC32 | __GFP_ZERO, PAGE_KERNEL,
|
||||
-1, __builtin_return_address(0));
|
||||
if (ret) {
|
||||
area = find_vm_area(ret);
|
||||
area->flags |= VM_USERMAP;
|
||||
|
|
Loading…
Reference in New Issue