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