lkml.org 
[lkml]   [2010]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [v2,1/8] NUMA Hotplug emulator
On Sat, Nov 13, 2010 at 02:14:16PM +0800, Shaohui Zheng wrote:
> diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
> index 7bca3c6..1993275 100644
> --- a/arch/x86/kernel/e820.c
> +++ b/arch/x86/kernel/e820.c
> @@ -971,6 +971,7 @@ static void early_panic(char *msg)
> }
>
> 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 @@ static int __init parse_memopt(char *p)
>
> 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;
> }
> early_param("mem", parse_memopt);
>
> +#ifdef CONFIG_NODE_HOTPLUG_EMU
> +u64 __init e820_hide_mem(u64 mem_size)
> +{
> + u64 start, end_pfn;
> +
> + userdef = 1;
> + end_pfn = e820_end_of_ram_pfn();
> + start = (end_pfn << PAGE_SHIFT) - mem_size;
> + e820_remove_range(start, max_mem_size - start, E820_RAM, 1);
> + max_mem_size = start;
> +
> + return start;
> +}
> +#endif
> +

All of this could be done with the memblock API, it would be nice if
people would start building on top of that rather than constantly adding
pointless e820 wrappers.

As I also noted in my review of the first iteration of this patch series,
almost everything you have here is completely generic, please do not go
out of your way to create architectural dependence where none exists.


\
 
 \ /
  Last update: 2010-11-15 07:37    [W:0.039 / U:1.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site