Re: [PATCH] x86: use add_highpages_with_active_regions for high pages init

Huang, Ying
2008-06-16T01:18:30Z

On Sat, 2008-06-14 at 02:05 -0700, Yinghai Lu wrote:
> On Sat, Jun 14, 2008 at 1:23 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > * Yinghai Lu <yhlu.kernel@gmail.com> wrote:
> >
> >> use early_node_map to init high pages, so can remove page_is_ram and
> >> page_is_reserved_early in the big loop with add_one_highpage
> >>
> >> also remove the page_is_reserved_early that is not needed.
> >
> > applied to tip/x86/mpparse for testing, thanks.
> >
> > Andrew: mm/page_alloc.c modification.
>
> Ying Huang,
>
> I removed page_is_reserved_early....it cause init highmem take extra
> time on my big box.

OK.

> please check efi_reserve_early that is calling reserve_early. so need
> to make sure "EFI memmap" is reserved in itself...otherwise you may
> need to update e820 table by add_memory_region (....,
> E820_RESERVED)...

EFI memmap may be in highmem, it can not be reserved by bootmem
allocator on i386. So I think it is necessary to have an early highmem
allocator. It can be used for EFI memory map and linked list of setup
data which comes from boot-loader and may be located in highmem.

As for the implementation, what about adding a remove_active_range()
which operate on early_node_map and an early_res_to_early_node_map()?

Best Regards,
Huang Ying