git: kernel - reformulate some of the pmap code to adhere to the new rules

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Nov 8 11:52:49 PST 2011


commit 90244566ec0139f7294d88277589e18403a74c11
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Nov 8 11:44:38 2011 -0800

    kernel - reformulate some of the pmap code to adhere to the new rules
    
    * hold_count can now be adjusted asynchronously so it cannot be used to
      count the number of pte's in a page table page.  Use wire_count instead.
    
    * On i386 there is no extra wire_count for the page table page mapping itself
      so the pmap_release code should never find a page table page other than the
      page directory page itself.
    
    * Reformulate the *ptep checks in x86-64's pmap_scan() code to avoid races.
    
    * Document why busy pages can sometimes be found in the PQ_FREE queues.
    
    * Document that other than finding a busy page, pages in PQ_FREE should be
      ready to go.
    
    * It is possible for a wired page to wind up on the inactive queue, the
      pageout daemon has to deal with the case by dequeueing it.

Summary of changes:
 sys/platform/pc32/i386/pmap.c    |   77 ++++++++++++++---------------
 sys/platform/pc64/include/pmap.h |    2 +-
 sys/platform/pc64/x86_64/pmap.c  |   98 ++++++++-----------------------------
 sys/vm/vm_page.c                 |   40 +++++++++++++---
 sys/vm/vm_pageout.c              |   16 ++++++
 5 files changed, 108 insertions(+), 125 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/90244566ec0139f7294d88277589e18403a74c11


-- 
DragonFly BSD source repository





More information about the Commits mailing list