Re: early_res and find_e820_area for i386?

H. Peter Anvin
2008-03-04T04:24:42Z

Huang, Ying wrote:
> Hi,
>
> Before bootmem allocator is available, kernel needs allocate memory
> pages such as page table and some NUMA structures. On x86_64, this is
> done by early_res and find_e820_area. On i386, this is done through
> using the memory area after kernel itself which is tracked with
> init_pg_tables_end.
>
> Is it better to implement early_res and find_e820_area on i386? Can we
> trust E820 table on i386?
>
> Or we add an early_alloc, which allocate memory from the memory area
> after kernel itself and check the early_res areas and E820 table too.
>
> BTW: Why not merge e820_32.c and e820_64.c? At least part of them.
>

What we *should* do, on both i386 and x86-64, is to create a synthetic
e820 table of any non-e820 information, and then yes, we should merge
the code.

In other words, we should have an e820 table which reflects what the
kernel considers true about the memory space.

-hpa