Re: [Patch 8/8] kexec: allow to shrink reserved memory

From: Amerigo Wang
Date: Tue Aug 18 2009 - 02:32:53 EST


KAMEZAWA Hiroyuki wrote:
On Mon, 17 Aug 2009 17:50:21 +0800
Amerigo Wang <amwang@xxxxxxxxxx> wrote:

Eric W. Biederman wrote:
Amerigo Wang <amwang@xxxxxxxxxx> writes:

Not that simple, marking it as "__init" means it uses some "__init" data which
will be dropped after initialization.
If we start with the assumption that we will be reserving to much and
will free the memory once we know how much we really need I see a very
simple way to go about this. We ensure that the reservation of crash
kernel memory is done through a normal allocation so that we have
struct page entries for every page. On 32bit x86 that is an extra 1MB
for a 128MB allocation.

Then when it comes time to release that memory we clear whatever magic
flags we have on the page (like PG_reserve) and call free_page.
Hmm, my MM knowledge is not good enough to judge if this works...
I need to check more MM source code.

Can any MM people help?

Hm, memory-hotplug guy is here.

Hi, thank you!
Can I have a question ?

- How crash kernel's memory is preserved at boot ?

Use bootmem, I think.

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? :)

Thanks.



--
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/