On 9/28/2021 4:46 PM, David Hildenbrand wrote:
On 28.09.21 12:53, Faiyaz Mohammed wrote:Yes, these are debug statements, which help to know the a-b address
On 9/28/2021 4:09 PM, David Hildenbrand wrote:
On 28.09.21 11:04, Faiyaz Mohammed wrote:memblock accounting we need this debug print.
For INITRD and initmem memory is reserved through "memblock_reserve"
during boot up but it is free via "free_reserved_area" instead
of "memblock_free".
For example:
[ 0.294848] Freeing initrd memory: 12K.
[ 0.696688] Freeing unused kernel memory: 4096K.
To get the start and end address of the above freed memory and to
account
proper memblock added memblock_dbg log in "free_reserved_area".
After adding log:
[ 0.294837] memblock_free: [0x00000083600000-0x00000083603000]
free_initrd_mem+0x20/0x28
[ 0.294848] Freeing initrd memory: 12K.
[ 0.695246] memblock_free: [0x00000081600000-0x00000081a00000]
free_initmem+0x70/0xc8
[ 0.696688] Freeing unused kernel memory: 4096K.
Signed-off-by: Faiyaz Mohammed <faiyazm@xxxxxxxxxxxxxx>
---
mm/page_alloc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index b37435c..f85c3b2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -8129,6 +8129,11 @@ unsigned long free_reserved_area(void *start,
void *end, int poison, const char
pr_info("Freeing %s memory: %ldK\n",
s, pages << (PAGE_SHIFT - 10));
+#ifdef CONFIG_HAVE_MEMBLOCK
+ memblock_dbg("memblock_free: [%#016llx-%#016llx] %pS\n",
+ __pa(start), __pa(end), (void *)_RET_IP_);
+#endif
IMHO, the "memblock_free" part is misleading. Something was allocated
early via memblock, then we transitioned to the buddy, now we're freeing
that early allocation via the buddy.
Yes, we're freeing the early allocation via buddy, but for proper
What do you mean with "accounting" ? These are debug statements.
belongs to x callsite. This info is required when memblock=debug is
passed through command line and CONFIG_HAVE_MEMBLOCK is enabled.