diff options
author | alc <alc@FreeBSD.org> | 2006-11-12 21:48:34 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2006-11-12 21:48:34 +0000 |
commit | 6093953d36a905170046a19eb1141c99b22fa802 (patch) | |
tree | c4a9c71fe86ec1dd8e45421082e59941e177807f /sys/ia64 | |
parent | 68445c77f7e732fbe9d5f4b930a9f2fcd0052b3f (diff) | |
download | FreeBSD-src-6093953d36a905170046a19eb1141c99b22fa802.zip FreeBSD-src-6093953d36a905170046a19eb1141c99b22fa802.tar.gz |
Make pmap_enter() responsible for setting PG_WRITEABLE instead
of its caller. (As a beneficial side-effect, a high-contention
acquisition of the page queues lock in vm_fault() is eliminated.)
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/pmap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c index 37fe800..bcdaae7 100644 --- a/sys/ia64/ia64/pmap.c +++ b/sys/ia64/ia64/pmap.c @@ -1647,6 +1647,8 @@ validate: pmap_pte_prot(pmap, pte, prot); pmap_set_pte(pte, va, pa, wired, managed); + if ((prot & VM_PROT_WRITE) != 0) + vm_page_flag_set(m, PG_WRITEABLE); vm_page_unlock_queues(); pmap_install(oldpmap); PMAP_UNLOCK(pmap); |