Re: [PATCH] x86 e820: only void usable memory areas inmemmap=exactmap case

From: Yinghai Lu
Date: Mon Jan 14 2013 - 23:45:31 EST


On Mon, Jan 14, 2013 at 4:54 PM, Thomas Renninger <trenn@xxxxxxx> wrote:
> On Monday, January 14, 2013 11:04:36 AM Yinghai Lu wrote:
>> On Mon, Jan 14, 2013 at 7:05 AM, Thomas Renninger <trenn@xxxxxxx> wrote:
>> > What is this for?:
>> > @@ -871,6 +879,11 @@ static int __init parse_memmap_one(char
>> >
>> > userdef = 1;
>> > if (*p == '@') {
>> >
>> > start_at = memparse(p+1, &p);
>> >
>> > + if (exactusablemap_parsed) {
>> > + /* remove all range with other types */
>> > + e820_remove_range(start_at, mem_size,
>> > + E820_RAM, 0);
>> > + }
>> >
>> > e820_add_region(start_at, mem_size, E820_RAM);
>> >
>> > } else if (*p == '#') {
>> >
>> > start_at = memparse(p+1, &p);
>>
>> remove all old renges before add E820_RAM, otherwise new add E820
>> ranges could be ignored.
> But this is intended?
> kexec must never request reserved memory to be used as ordinary E820_RAM
> by the kdump kernel.
> This also reverts what exactusablemap is all about:
> Keep all reserved memory ranges of the original BIOS map.
>
> Above would again wrongly remove the mmconf and other reserved regions
> if kexec passes memmap=exactuseablemap,x@y
>
> From what I can see the patch looks fine, but above part should
> simply be left out.

then, I would like to rename it to resetusablemap instead.

like attached.

Thanks

Yinghai

Attachment: e820_resetusablemap.patch
Description: Binary data