kernel memory

Peter Wemm peter at wemm.org
Sun Jul 24 17:47:55 GMT 2005


On Sunday 24 July 2005 12:08 am, Petri Helenius wrote:
> BTW, I remember seeing a freebsd memory map somewhere but I'm unable
> to locate it again. Is there one that has been updated to be valid
> for the 64 bit platforms?

0000000000000000 - 00007fffffffffff   userland
0000800000000000 - ffff7fffffffffff   does not exist (hole)
ffff800000000000 - ffff804020100fff   recursive page table (512GB slot)
.. unused ..
ffffff0000000000 - ffffff7fffffffff   512GB direct map mappings
ffffff8000000000 - ffffffff7fffffff   510GB future kva (todo)
ffffffff80000000 - ffffffffffffffff   2GB kva

This is specific to the FreeBSD/amd64 kernel as it currently stands.

The "hole" does not exist, you can't generate addresses in that region 
because it doesn't map onto the page table tree and causes a GPF.

This layout is arranged around the 512 entry 4th level page table page. 
Each slot corresponds to 512GB of virtual address space. Slots 0 - 255 
are userland, 256 - 511 are kernel.  kvm is using 2GB out of the 
topmost slot.  When we extend KVM, it'll have all 512GB available.

The direct map region uses the next slot from the top, using 2MB pages.  
It only has enough entries in there to cover max(physicalram, 4GB); 
because it is still a page table tree and it would consume physical 
pages to implement it.  If there is nothing actually there, there isn't 
much point wasting page table pages for them.

There is a huge "unused" block in the kernel half of address space.  
Only 3 of the 256 kernel slots are used.

> Pete
>
> Petri Helenius wrote:
> > Peter Wemm wrote:
> >> 2GB for paged kernel memory.  But in addition we access memory via
> >> the direct map area to avoid the need for temporary mappings in
> >> many cases.  uma (malloc, mbufs) etc use this, as does the sfbuf
> >> temporary mapping system.
> >
> > So there is no limitation for malloced memory? Say if my driver
> > would like to have 4 or 8 gig lookup cache that would work?
> >
> > Pete
>
> _______________________________________________
> freebsd-amd64 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-amd64
> To unsubscribe, send any mail to
> "freebsd-amd64-unsubscribe at freebsd.org"

-- 
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


More information about the freebsd-amd64 mailing list