Re: 2.3.4[67] does not boot with PAE36

From: Ingo Molnar (mingo@chiara.csoma.elte.hu)
Date: Fri Feb 25 2000 - 11:12:32 EST


On Thu, 24 Feb 2000, Linus Torvalds wrote:

> > (the bug was that we allocated and initialized secondary PAE page tables
> > outside the 8MB initial virtual memory - bootmem_alloc_pages() prefers to
> > return addresses above 16MB on x86.)
>
> Ingo, there are other problems with the "map only a limited part of the
> physical memory" approach: the SMP tables are in high memory on newer
> systems from intel etc. Instead of this patch, I'd much rather get a patch
> that moves "paging_init()" from init/main.c into setup_arch().

i'd love to do this as well, but there is one big problem: the SMP-config
parsing code has to run ASAP, before any memory is destroyed. It can be
anywhere in the BIOS sections of the lower 1MB RAM. So allocating and
initializing page tables will cause problems. We could allocate page
tables from above 1MB, but this is just yet another implicit 'reserve
memory' thing we tried to get rid of via bootmem :-)

> ("paging_init()" is really an arch-specific thing anyway: many
> architectures do not need any page table setup at all due to having a 1:1
> hardware mapping for the kernel address space already, so this makes sense
> from a bigger architectural standpoint too, I think).

yep, i agree. I gave it a quick shot and we crash in smpboot.c line 864,
which crash can be explained because smp_boot_cpu_id is taken from the MP
config table.

        Ingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:12 EST