Re: [RFC PATCH 0/4] x86_64/mm: remove bottom-up allocation style by pushing forward the parsing of mem hotplug info

From: Pingfan Liu
Date: Tue Jan 08 2019 - 08:27:37 EST


On Tue, Jan 8, 2019 at 6:06 PM Chao Fan <fanc.fnst@xxxxxxxxxxxxxx> wrote:
>
> 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 <tangchen@xxxxxxxxxxxxxx>
> 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, It is a long thread, as my understanding, Tejun concerned
about the early parsing of ACPI consumes memory from memblock
allocator. If it is, then this should not happen in my series.
Cc Tejun and Yinghai.

Regards,
Pingfan
> Thanks,
> Chao Fan
>
> >
> >Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> >Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> >Cc: Borislav Petkov <bp@xxxxxxxxx>
> >Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
> >Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> >Cc: Andy Lutomirski <luto@xxxxxxxxxx>
> >Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> >Cc: "Rafael J. Wysocki" <rjw@xxxxxxxxxxxxx>
> >Cc: Len Brown <lenb@xxxxxxxxxx>
> >Cc: linux-kernel@xxxxxxxxxxxxxxx
> >
> >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
> >
> >
> >
>
>