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
>
>
>


Reply via email to