lkml.org 
[lkml]   [2010]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [1/8,v3] NUMA Hotplug Emulator: add function to hide memory region via e820 table.
    On Wed, 17 Nov 2010, shaohui.zheng@intel.com 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?

    > 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

    This doesn't have any sanity checking for whether e820_remove_range() will
    leave any significant amount of memory behind so the kernel will even boot
    (probably should have a guaranteed FAKE_NODE_MIN_SIZE left behind?).

    > +
    > static int __init parse_memmap_opt(char *p)
    > {
    > char *oldp;


    \
     
     \ /
      Last update: 2010-11-17 09:19    [W:0.038 / U:29.824 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site