• Tang Chen's avatar
    acpi, memory-hotplug: extend movablemem_map ranges to the end of node · 27168d38
    Tang Chen authored
    When implementing movablemem_map boot option, we introduced an array
    movablemem_map.map[] to store the memory ranges to be set as
    ZONE_MOVABLE.
    
    Since ZONE_MOVABLE is the latst zone of a node, if user didn't specify
    the whole node memory range, we need to extend it to the node end so
    that we can use it to prevent memblock from allocating memory in the
    ranges user didn't specify.
    
    We now implement movablemem_map boot option like this:
    
            /*
             * For movablemem_map=nn[KMG]@ss[KMG]:
             *
             * SRAT:                |_____| |_____| |_________| |_________| ......
             * node id:                0       1         1           2
             * user specified:                |__|                 |___|
             * movablemem_map:                |___| |_________|    |______| ......
             *
             * Using movablemem_map, we can prevent memblock from allocating memory
             * on ZONE_MOVABLE at boot time.
             *
             * NOTE: In this case, SRAT info will be ingored.
             */
    
    [akpm@linux-foundation.org: clean up code, fix build warning]
    Signed-off-by: default avatarTang Chen <tangchen@cn.fujitsu.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Jiang Liu <jiang.liu@huawei.com>
    Cc: Jianguo Wu <wujianguo@huawei.com>
    Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Wu Jianguo <wujianguo@huawei.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Len Brown <lenb@kernel.org>
    Cc: "Brown, Len" <len.brown@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    27168d38
srat.c 6.39 KB