Re: [PATCH] mm/memory hotplug: print the last vmemmap region at the end of hot add memory

From: Zhu Guihua
Date: Thu Jun 11 2015 - 06:44:12 EST



On 06/10/2015 04:29 AM, Andrew Morton wrote:
On Tue, 9 Jun 2015 11:41:28 +0800 Zhu Guihua <zhugh.fnst@xxxxxxxxxxxxxx> wrote:

--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -513,6 +513,7 @@ int __ref __add_pages(int nid, struct zone *zone, unsigned long phys_start_pfn,
break;
err = 0;
}
+ vmemmap_populate_print_last();
return err;
}
vmemmap_populate_print_last() is only available on x86_64, when
CONFIG_SPARSEMEM_VMEMMAP=y. Are you sure this won't break builds?
I tried this on i386 and on x86_64 when CONFIG_SPARSEMEM_VMEMMAP=n ,
it builds ok.
With powerpc:

akpm3:/usr/src/25> make allmodconfig
akpm3:/usr/src/25> make mm/memory_hotplug.o
akpm3:/usr/src/25> nm mm/memory_hotplug.o | grep vmemmap_populate_print_last
U .vmemmap_populate_print_last
akpm3:/usr/src/25> grep -r vmemmap_populate_print_last arch/powerpc
akpm3:/usr/src/25>

So I think that's going to break.

I expect ia64 will break also, but I didn't investigate.
.


There is
void __weak __meminit vmemmap_populate_print last(void)
in /mm/sparse.c, so I think this won't break builds.

And I found the function was invoked in void __init sparse_init(void) without
CONFIG_SPARSEMEM_VMEMMAP=y.

I also tried this on arm, it builds ok too.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/