Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 May 2003 22:04:55 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/amd64/amd64 genassym.c locore.S machdep.c mem.c nexus.c pmap.c trap.c vm_machdep.c src/sys/amd64/include bus_amd64.h param.h pmap.h vmparam.h src/sys/conf kern.mk
Message-ID:  <200305230504.h4N54tIh013346@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
peter       2003/05/22 22:04:55 PDT

  FreeBSD src repository

  Modified files:
    sys/amd64/amd64      genassym.c locore.S machdep.c mem.c 
                         nexus.c pmap.c trap.c vm_machdep.c 
    sys/amd64/include    bus_amd64.h param.h pmap.h vmparam.h 
    sys/conf             kern.mk 
  Log:
  Major pmap rework to take advantage of the larger address space on amd64
  systems.  Of note:
  - Implement a direct mapped region using 2MB pages.  This eliminates the
    need for temporary mappings when getting ptes.  This supports up to
    512GB of physical memory for now.  This should be enough for a while.
  - Implement a 4-tier page table system.  Most of the infrastructure is
    there for 128TB of userland virtual address space, but only 512GB is
    presently enabled due to a mystery bug somewhere.  The design of this
    was heavily inspired by the alpha pmap.c.
  - The kernel is moved into the negative address space(!).
  - The kernel has 2GB of KVM available.
  - Provide a uma memory allocator to use the direct map region to take
    advantage of the 2MB TLBs.
  - Fixed some assumptions in the bus_space macros about the ability
    to fit virtual addresses in an 'int'.
  
  Notable missing things:
  - pmap_growkernel() should be able to grow to 512GB of KVM by expanding
    downwards below kernbase.  The kernel must be at the top 2GB of the
    negative address space because of gcc code generation strategies.
  - need to fix the >512GB user vm code.
  
  Approved by:    re (blanket)
  
  Revision  Changes    Path
  1.147     +10 -2     src/sys/amd64/amd64/genassym.c
  1.174     +8 -1      src/sys/amd64/amd64/locore.S
  1.580     +9 -77     src/sys/amd64/amd64/machdep.c
  1.108     +2 -1      src/sys/amd64/amd64/mem.c
  1.52      +2 -2      src/sys/amd64/amd64/nexus.c
  1.408     +552 -447  src/sys/amd64/amd64/pmap.c
  1.259     +1 -1      src/sys/amd64/amd64/trap.c
  1.209     +1 -1      src/sys/amd64/amd64/vm_machdep.c
  1.25      +6 -6      src/sys/amd64/include/bus_amd64.h
  1.5       +5 -7      src/sys/amd64/include/param.h
  1.102     +33 -46    src/sys/amd64/include/pmap.h
  1.37      +24 -12    src/sys/amd64/include/vmparam.h
  1.35      +1 -1      src/sys/conf/kern.mk



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305230504.h4N54tIh013346>