On Mon, Jan 07, 2019 at 04:24:41PM +0800, Pingfan Liu wrote: >Background about the defect of the current bottom-up allocation style, take >the following scenario: > | unmovable node | movable node | > | kaslr-kernel |subtree of pgtable for phy<->virt | > >Although kaslr-kernel can avoid to stain the movable node. But the >pgtable can still stain the movable node. That is a probability problem, >with low probability, but still exist. This patch tries to eliminate the >probability. With the previous patch, at the point of init_mem_mapping(), >memblock allocator can work with the knowledge of acpi memory hotmovable >info, and avoid to stain the movable node. As a result, >memory_map_bottom_up() is not needed any more. >
Hi Pingfan, Tang Chen ever tried to do this before adding 'movable_node': commit e8d1955258091e4c92d5a975ebd7fd8a98f5d30f Author: Tang Chen <tangc...@cn.fujitsu.com> Date: Fri Feb 22 16:33:44 2013 -0800 acpi, memory-hotplug: parse SRAT before memblock is ready Then, Lu Yinghai tried to do the similar job, you can see: https://lwn.net/Articles/554854/ for more information. Hope that can help you. Thanks, Chao Fan > >Cc: Thomas Gleixner <t...@linutronix.de> >Cc: Ingo Molnar <mi...@redhat.com> >Cc: Borislav Petkov <b...@alien8.de> >Cc: "H. Peter Anvin" <h...@zytor.com> >Cc: Dave Hansen <dave.han...@linux.intel.com> >Cc: Andy Lutomirski <l...@kernel.org> >Cc: Peter Zijlstra <pet...@infradead.org> >Cc: "Rafael J. Wysocki" <r...@rjwysocki.net> >Cc: Len Brown <l...@kernel.org> >Cc: linux-kernel@vger.kernel.org > >Pingfan Liu (4): > acpi: change the topo of acpi_table_upgrade() > x86/setup: parse acpi to get hotplug info before init_mem_mapping() > x86/mm: set allowed range for memblock allocator > x86/mm: remove bottom-up allocation style for x86_64 > > arch/arm64/kernel/setup.c | 2 +- > arch/x86/kernel/setup.c | 17 ++++- > arch/x86/mm/init.c | 154 +++++++--------------------------------------- > arch/x86/mm/init_32.c | 123 ++++++++++++++++++++++++++++++++++++ > arch/x86/mm/mm_internal.h | 7 +++ > drivers/acpi/tables.c | 4 +- > include/linux/acpi.h | 5 +- > 7 files changed, 172 insertions(+), 140 deletions(-) > >-- >2.7.4 > > >