Thread (36 messages) 36 messages, 6 authors, 2012-08-01

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-mm, linux-s390, linux-sh, 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help