mm: memblock: Add more debug logs

memblock_alloc is not giving information of owner of the memblock_reserve,
when we pass through command line "memblock=debug".
Below information is not enough for memory statistics.
for example:
[    0.000000] memblock_reserve: [0x000000013fbf8000-0x000000013fbf8fff] memblock_alloc+0x50/0x60.

To enhance the memblokc_dbg information or to get the exact owner of the
memblock_reserve added debug logs in different memblock alloc functions,
which is helpful for memory statistics.
After adding logs:
[    0.000000] memblock_alloc: size: 4096 align: 4096 early_pgtable_alloc+0x18/0x98.
[    0.000000] memblock_reserve: [0x000000013fbf9000-0x000000013fbf9fff] memblock_alloc+0x50/0x60.

Change-Id: Ibc9603f71fe3150af67398658d04c34f824b47e1
Signed-off-by: Faiyaz Mohammed <faiyazm@codeaurora.org>
This commit is contained in:
Faiyaz Mohammed 2019-10-09 11:38:35 +05:30
parent 364e8d572e
commit bf5dfef3f2
2 changed files with 10 additions and 0 deletions

View file

@ -9,6 +9,7 @@
#include <linux/mm_types.h>
#include <asm/dma.h>
#include <asm/processor.h>
#include <linux/memblock.h>
/*
* simple boot-time physical memory area allocator.
@ -186,6 +187,9 @@ void __memblock_free_late(phys_addr_t base, phys_addr_t size);
static inline void * __init memblock_virt_alloc(
phys_addr_t size, phys_addr_t align)
{
memblock_dbg("%s: %llu bytes align=0x%llx %pS\n",
__func__, (u64)size, (u64)align, (void *)_RET_IP_);
return memblock_virt_alloc_try_nid(size, align, BOOTMEM_LOW_LIMIT,
BOOTMEM_ALLOC_ACCESSIBLE,
NUMA_NO_NODE);

View file

@ -1261,6 +1261,8 @@ phys_addr_t __init memblock_alloc_range(phys_addr_t size, phys_addr_t align,
phys_addr_t start, phys_addr_t end,
enum memblock_flags flags)
{
memblock_dbg("%s: size: %llu align: %llu %pS\n",
__func__, (u64)size, (u64)align, (void *)_RET_IP_);
return memblock_alloc_range_nid(size, align, start, end, NUMA_NO_NODE,
flags);
}
@ -1290,6 +1292,8 @@ phys_addr_t __init memblock_alloc_nid(phys_addr_t size, phys_addr_t align, int n
phys_addr_t __init __memblock_alloc_base(phys_addr_t size, phys_addr_t align, phys_addr_t max_addr)
{
memblock_dbg("%s: size: %llu align: %llu %pS\n",
__func__, (u64)size, (u64)align, (void *)_RET_IP_);
return memblock_alloc_base_nid(size, align, max_addr, NUMA_NO_NODE,
MEMBLOCK_NONE);
}
@ -1309,6 +1313,8 @@ phys_addr_t __init memblock_alloc_base(phys_addr_t size, phys_addr_t align, phys
phys_addr_t __init memblock_alloc(phys_addr_t size, phys_addr_t align)
{
memblock_dbg("%s: size: %llu align: %llu %pS\n",
__func__, (u64)size, (u64)align, (void *)_RET_IP_);
return memblock_alloc_base(size, align, MEMBLOCK_ALLOC_ACCESSIBLE);
}