git: kernel - Rewrite the x86-64 pmap code

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Oct 26 11:46:59 PDT 2011


commit 701c977e41807eb03343c695da4625c091d152b1
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Oct 26 11:42:18 2011 -0700

    kernel - Rewrite the x86-64 pmap code
    
    * Use unassociated VM pages (without a VM object) for all page table pages.
    
    * Remove kptobj and pmap->pm_pteobj.
    
    * For the moment implement a Red-Black tree for pv_entry_t manipulation.
      Revamp the pindex to include all page table page levels, from terminal
      pages to the PML4 page.  The hierarchy is now arranged via the PV system.
    
    * As before, the kernel page tables only use PV entries for terminal pages.
    
    * Refactor the locking to allow blocking operations during deep scans.
      Individual PV entries are now locked and critical PMAP operations do not
      require the pmap->pm_token.  This should greatly improve threaded
      program performance.
    
    * Fix kgdb on the live kernel (pmap_extract() was not handling short-cutted
      page directory pages).

Summary of changes:
 sys/platform/pc64/include/pmap.h    |   54 +-
 sys/platform/pc64/include/vmparam.h |    2 +-
 sys/platform/pc64/x86_64/machdep.c  |    1 +
 sys/platform/pc64/x86_64/pmap.c     | 3261 +++++++++++++++++------------------
 4 files changed, 1666 insertions(+), 1652 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/701c977e41807eb03343c695da4625c091d152b1


-- 
DragonFly BSD source repository





More information about the Commits mailing list