Re: [1/8,v3] NUMA Hotplug Emulator: add function to hide memory region via e820 table.

David Rientjes
2010-11-21T21:33:53Z

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2083 bytes --]

On Sun, 21 Nov 2010, Américo Wang wrote:

> >> > > > > Index: linux-hpe4/arch/x86/kernel/e820.c
> >> > > > > ===================================================================
> >> > > > > --- linux-hpe4.orig/arch/x86/kernel/e820.c 2010-11-15 17:13:02.483461667 +0800
> >> > > > > +++ linux-hpe4/arch/x86/kernel/e820.c 2010-11-15 17:13:07.083461581 +0800
> >> > > > > @@ -971,6 +971,7 @@
> >> > > > > }
> >> > > > >
> >> > > > > static int userdef __initdata;
> >> > > > > +static u64 max_mem_size __initdata = ULLONG_MAX;
> >> > > > >
> >> > > > > /* "mem=nopentium" disables the 4MB page tables. */
> >> > > > > static int __init parse_memopt(char *p)
> >> > > > > @@ -989,12 +990,28 @@
> >> > > > >
> >> > > > > userdef = 1;
> >> > > > > mem_size = memparse(p, &p);
> >> > > > > - e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
> >> > > > > + e820_remove_range(mem_size, max_mem_size - mem_size, E820_RAM, 1);
> >> > > > > + max_mem_size = mem_size;
> >> > > > >
> >> > > > > return 0;
> >> > > > > }
> >> > > >
> >> > > > This needs memmap= support as well, right?
> >> > > we did not do the testing after combine both memmap and numa=hide paramter,
> >> > > I think that the result should similar with mem=XX, they both remove a memory
> >> > > region from the e820 table.
> >> > >
> >> >
> >> > You've modified the parser for mem= but not memmap= so the change needs
> >> > additional support for the latter.
> >> >
> >>
> >> the parser for mem= is not modified, the changed parser is numa=, I add a addtional
> >> option numa=hide=.
> >>
> >
> >The above hunk is modifying the x86 parser for the mem= parameter.
> >
>
> That is fine as long as "mem=" is parsed before "numa=".
>

If you'll read the discussion, I had no problem with modifying the mem
parser. I merely suggested that Shaohui modify the memmap parser in the
same way to save max_mem_size so users can use it as well for the hidden
nodes, that are now obsolete. Apparently that was misunderstood by both
of you although it looks pretty clear above, I dunno.