Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf5dfef3 authored by Faiyaz Mohammed's avatar Faiyaz Mohammed
Browse files

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: default avatarFaiyaz Mohammed <faiyazm@codeaurora.org>
parent 364e8d57
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);
+6 −0
Original line number Diff line number Diff line
@@ -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);
}