PAGE_OFFSET is 0x78000000 with VMSPLIT_2G, this address is in the middle
of the second pgd entry with pae enabled. This breaks assumptions
(address is aligned to pgd entry's address) in a lot of places like
pagetable_init. Fixing the assumptions is hard (eg, low mapping). SO I
just changed the address to 0x80000000.
Signed-off-by: Shaohua Li <[email protected]>
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index 8ff1c6f..fddfb26 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -532,7 +532,7 @@ endchoice
config PAGE_OFFSET
hex
default 0xB0000000 if VMSPLIT_3G_OPT
- default 0x78000000 if VMSPLIT_2G
+ default 0x80000000 if VMSPLIT_2G
default 0x40000000 if VMSPLIT_1G
default 0xC0000000
On Fri, Dec 01 2006, Shaohua Li wrote:
> PAGE_OFFSET is 0x78000000 with VMSPLIT_2G, this address is in the middle
> of the second pgd entry with pae enabled. This breaks assumptions
> (address is aligned to pgd entry's address) in a lot of places like
> pagetable_init. Fixing the assumptions is hard (eg, low mapping). SO I
> just changed the address to 0x80000000.
>
> Signed-off-by: Shaohua Li <[email protected]>
>
> diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
> index 8ff1c6f..fddfb26 100644
> --- a/arch/i386/Kconfig
> +++ b/arch/i386/Kconfig
> @@ -532,7 +532,7 @@ endchoice
> config PAGE_OFFSET
> hex
> default 0xB0000000 if VMSPLIT_3G_OPT
> - default 0x78000000 if VMSPLIT_2G
> + default 0x80000000 if VMSPLIT_2G
> default 0x40000000 if VMSPLIT_1G
> default 0xC0000000
0x78000000 was chosen since it gives you the full 2G as low memory, if
you mave it 0x80000000 then you still have a little highmem and need
that turned on.
--
Jens Axboe
On Fri, 2006-12-01 at 08:55 +0100, Jens Axboe wrote:
> On Fri, Dec 01 2006, Shaohua Li wrote:
> > PAGE_OFFSET is 0x78000000 with VMSPLIT_2G, this address is in the middle
> > of the second pgd entry with pae enabled. This breaks assumptions
> > (address is aligned to pgd entry's address) in a lot of places like
> > pagetable_init. Fixing the assumptions is hard (eg, low mapping). SO I
> > just changed the address to 0x80000000.
> >
> > Signed-off-by: Shaohua Li <[email protected]>
> >
> > diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
> > index 8ff1c6f..fddfb26 100644
> > --- a/arch/i386/Kconfig
> > +++ b/arch/i386/Kconfig
> > @@ -532,7 +532,7 @@ endchoice
> > config PAGE_OFFSET
> > hex
> > default 0xB0000000 if VMSPLIT_3G_OPT
> > - default 0x78000000 if VMSPLIT_2G
> > + default 0x80000000 if VMSPLIT_2G
> > default 0x40000000 if VMSPLIT_1G
> > default 0xC0000000
>
> 0x78000000 was chosen since it gives you the full 2G as low memory, if
> you mave it 0x80000000 then you still have a little highmem and need
> that turned on.
Ok, Maybe the x86 relocatable patch (it seems removed the low identity
mapping) can help here. With it, we just need to fix pagetable_init.
Thanks,
Shaohua
Hi!
> PAGE_OFFSET is 0x78000000 with VMSPLIT_2G, this address is in the middle
> of the second pgd entry with pae enabled. This breaks assumptions
> (address is aligned to pgd entry's address) in a lot of places like
> pagetable_init. Fixing the assumptions is hard (eg, low mapping). SO I
> just changed the address to 0x80000000.
>
> Signed-off-by: Shaohua Li <[email protected]>
>
> diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
> index 8ff1c6f..fddfb26 100644
> --- a/arch/i386/Kconfig
> +++ b/arch/i386/Kconfig
> @@ -532,7 +532,7 @@ endchoice
> config PAGE_OFFSET
> hex
> default 0xB0000000 if VMSPLIT_3G_OPT
> - default 0x78000000 if VMSPLIT_2G
> + default 0x80000000 if VMSPLIT_2G
> default 0x40000000 if VMSPLIT_1G
> default 0xC0000000
Do we allow user entering arbitrary value here? In any case, it would
be nice to document alignment requirements of this one, because
otherwise someone *will* get it wrong.
--
Thanks for all the (sleeping) penguins.
>> PAGE_OFFSET is 0x78000000 with VMSPLIT_2G, this address is in the middle
>> of the second pgd entry with pae enabled. This breaks assumptions
>> (address is aligned to pgd entry's address) in a lot of places like
>> pagetable_init. Fixing the assumptions is hard (eg, low mapping). SO I
>> just changed the address to 0x80000000.
>
>Do we allow user entering arbitrary value here? In any case, it would
>be nice to document alignment requirements of this one, because
>otherwise someone *will* get it wrong.
There was a reason 0x78000000 was chosen
http://marc.theaimsgroup.com/?l=linux-kernel&m=113690073801820&w=2
Though further back in
http://marc.theaimsgroup.com/?l=linux-kernel&m=113689790817521&w=2
0x80000000 was indeed posted.
-`J'
--