Re: 64GB (i386) kernel config + PAGE_OFFSET change

From: Hugh Dickins (hugh@veritas.com)
Date: Fri Feb 22 2002 - 14:20:57 EST


On Fri, 22 Feb 2002, Badari Pulavarty wrote:
>
> I am trying to boot a 2.4.17 (i386) kernel with 64GB kernel config
> and PAGE_OFFSET changed to 3.5 GB (0xE0000000) and it does not boot.
>
> I was wondering why ? I have 8GB on my machine (P-III). I looked
> at Andrea's 3.5 GB user-virtual patch. It does not support 3.5GB
> for 64GB kernel either ? I can't boot even with forcing mem=1G either.

With NOHIGHMEM or HIGHMEM4G, there are 2 levels of page table:
1024 entries in pgd, (1 entry per pmd,) 1024 entries per pt.

With HIGHMEM64G (PAE: 8-byte pte), there are 3 levels of page table:
4 entries in pgd, 512 entries per pmd, 512 entries per pt.

The current code only works if PAGE_OFFSET is a multiple of PGDIR_SIZE:
any multiple of 0x00400000 if NOHIGHMEM or HIGHMEM4G, but the more
limiting multiple of 0x40000000 if HIGHMEM64G: so 3.5 GB not allowed.

I expect the CONFIG_X86_PAE get_pgd_slow() could quite easily be
extended to copy kernel entries at pmd level as well as at pgd level
if necessary, but so far nobody has wanted it enough to make the change.

Hugh

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



This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:44 EST