Subject: Re: Section PTEs
To: Matt Thomas <matt@3am-software.com>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm
Date: 06/04/2001 09:32:47
On Monday 04 June 2001  5:44 am, Matt Thomas wrote:
> Just like what I'm going with the PPC pmap, you might consider
> using the section (1MB) PTEs to some or all of memory.
> Considering the DNARD has a max of 64MB of RAM, sacrificing
> 64MB of KVA to map that memory and then use PMAP_MAP_POOLPAGE
> to map pools.

Would be good to do, however currently the start of KVM is 0xf1000000, 
running using 80MB's on the acorn32, upto 112MB on footbridge based hardware. 
 If we wanted to do the above we need to first lower the start of the kernel. 
 I'd actually suggest lowering it to 0xC000000 which gives us 768MB of extra 
kvm space.  It does mean that we need to implement the pmap_growkernel call. 
Having looked over the i386 version looks more to be a matter of knowing what 
active pmaps there are, i386 just has a list of them.  I'll look into getting 
growkernel implemented.  Then we have to start checking that bootloaders can 
cope with the change of address for the kernel.

Although perhaps we don't actually need to move the start of the kernel, and 
we just use 0xC0000000 - 0xefffffff as the kvm space, and shift 
PAGE_TABLE_SPACE_START up to 0xf10000000.   And then map the whole of 
0xc0000000 to 0xf0ffffff into user processes.  But that all seems a tad icky 
just to avoid having to boot from somewhere other than 0xf0000000.  I'll 
investigate booting from somewhere else in memory and do some test kernels.  

First we really have to see if the bootloaders can cope.

> For those systems with lots of RAM, use the same hook in UVM
> that will be added to "cluster" page allocations to certain
> memory regions.

Any docs on this?  or is it an unimplemented thing at the moment?

Cheers,
Chris