Messages in this thread | | | Date | Tue, 18 Aug 2009 16:51:27 +0800 | From | Amerigo Wang <> | Subject | Re: [Patch 8/8] kexec: allow to shrink reserved memory |
| |
KAMEZAWA Hiroyuki wrote: > On Tue, 18 Aug 2009 14:31:23 +0800 > Amerigo Wang <amwang@redhat.com> wrote: > >> Hi, thank you! >> >>> Can I have a question ? >>> >>> - How crash kernel's memory is preserved at boot ? >>> >>> >> Use bootmem, I think. >> >> > I see. > > In x86, > > setup_arch() > -> reserve_crashkernel() > -> find_and_reserve_crashkernel() > -> reserve_bootmem_generic() > > Then, all "active range" is already registered and there are memmap. > > > >>> It's hidden from the system before mem_init() ? >>> >>> >> Not sure, but probably yes. It is reserved in setup_arch() which is >> before mm_init() which calls mem_init(). >> >> Do you have any advice to free that reserved memory after boot? :) >> >> > > Let's see arch/x86/mm/init.c::free_initmem() > > Maybe it's all you want. > > - ClearPageReserved() > - init_page_count() > - free_page() > - totalram_pages++ > > But it has no argumetns. Maybe you need your own function or modification. > online_pages() does very similar. But, hmm,.. writing something open coded one > for crashkernel is not very bad, I think. >
Nice help!
Yeah, I think we can make that be a generic wrapper function so that both free_initmem() and shrink_crash_memory() can use it.
Then I will update and resend the whole patchset.
Thank you!
| |