cvs commit: src/sys/amd64/amd64 pmap.c

Peter Wemm peter at wemm.org
Fri Jun 20 08:45:05 PDT 2003


Hidetoshi Shimokawa wrote:
> At Fri, 20 Jun 2003 10:02:24 +0100,
> Doug Rabson wrote:
> > 
> > On Friday 20 June 2003 1:11 am, Hidetoshi Shimokawa wrote:
> > > At Thu, 19 Jun 2003 12:02:04 -0700,
> > >
> > > Peter Wemm wrote:
> > > > >   Modified files:
> > > > >     sys/amd64/amd64      pmap.c
> > > > >   Log:
> > > > >   Fix direct map page table for 2GB+ physical memory.
> > > >
> > > > Thank you! :-)
> > > >
> > > > Cheers,
> > > > -Peter
> > >
> > > Do you have any plan to increase KVA up to 512GB?
> > > struct vm_page consumes 250MB space for 8GB memory.
> > 
> > Is there a direct-mapped region on amd64? The vm_page arrays come out of 
> > the direct-mapped regions on alpha and ia64 (don't know about sparc64) 
> > and this makes a big difference to KVA usage and probably to TLB 
> > pressure too.
> 
> It makes sense. Amd64 has direct-mapped region on -1TB space.
> I'll look into the code of alpha/ia64.
> 

Yes.  I created a pseudo-direct-mapped region using 2MB pages so that I
could avoid doing temporary mappings when walking the page table tree (like
on alpha, which I modeled the code on).  sparc64 has a synthetic direct
map region as well.

While it is synthetic, it does seem to help because it uses larger pages
and reduces tlb pressure.  Not everything uses it yet, in particular
pmap_mapdev() and friends.  I was just about to do it when I realized that
I wasn't creating enough space to at least cover the 4GB pci space.

There is also a problem with a couple of routines that do not handle PG_PS
at a few critical points, so the kernel itself is not using it yet.

Cheers,
-Peter
--
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 cvs-src mailing list