Messages in this thread | | | Date | Tue, 18 Aug 2009 17:25:52 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [Patch 8/8] kexec: allow to shrink reserved memory |
| |
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.
Thanks, -Kame
| |