Re: [RFC PATCH v5 16/19] memory-hotplug: free memmap of sparse-vmemmap
From: Wen Congyang <hidden>
Date: 2012-08-01 06:04:28
Also in:
linux-acpi, linux-s390, linux-sh, linuxppc-dev, lkml
At 07/31/2012 08:22 PM, Gerald Schaefer Wrote:
On Fri, 27 Jul 2012 18:34:38 +0800 Wen Congyang [off-list ref] wrote:quoted
From: Yasuaki Ishimatsu <redacted> All pages of virtual mapping in removed memory cannot be freed, since some pages used as PGD/PUD includes not only removed memory but also other memory. So the patch checks whether page can be freed or not. How to check whether page can be freed or not? 1. When removing memory, the page structs of the revmoved memory are filled with 0FD. 2. All page structs are filled with 0xFD on PT/PMD, PT/PMD can be cleared. In this case, the page used as PT/PMD can be freed. Applying patch, __remove_section() of CONFIG_SPARSEMEM_VMEMMAP is integrated into one. So __remove_section() of CONFIG_SPARSEMEM_VMEMMAP is deleted.There should also be generic or dummy versions of the functions vmemmap_free_bootmem(), vmemmap_kfree() and register_page_bootmem_memmap(). It doesn't compile on other archtitectures than x86 as it is now: mm/built-in.o: In function `sparse_remove_one_section': (.text+0x49fa6): undefined reference to `vmemmap_free_bootmem' mm/built-in.o: In function `sparse_remove_one_section': (.text+0x49fcc): undefined reference to `vmemmap_kfree' mm/built-in.o: In function `register_page_bootmem_info_node': (.text+0x57c06): undefined reference to `register_page_bootmem_memmap' mm/built-in.o: In function `sparse_add_one_section': (.meminit.text+0x2506): undefined reference to `vmemmap_kfree' mm/built-in.o: In function `sparse_add_one_section': (.meminit.text+0x2528): undefined reference to `vmemmap_kfree' make: *** [vmlinux] Error 1
Thanks for testing. I will fix it. Wen Congyang -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>