git: kernel - reformulate some of the pmap code to adhere to the new rules
dillon at crater.dragonflybsd.org
Tue Nov 8 11:52:49 PST 2011
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(-)
DragonFly BSD source repository
More information about the Commits