summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-11-03 20:17:31 +0000
committeralc <alc@FreeBSD.org>2004-11-03 20:17:31 +0000
commit25b80a64b9fc30297401a041a69a8229872b01c4 (patch)
tree424cbe6b795ce744b46e7a81db98175896cc5a16 /sys/sparc64
parentd083dba3a2fbaeb254502ed1ca0893eb4a5aae14 (diff)
downloadFreeBSD-src-25b80a64b9fc30297401a041a69a8229872b01c4.zip
FreeBSD-src-25b80a64b9fc30297401a041a69a8229872b01c4.tar.gz
The synchronization provided by vm object locking has eliminated the
need for most calls to vm_page_busy(). Specifically, most calls to vm_page_busy() occur immediately prior to a call to vm_page_remove(). In such cases, the containing vm object is locked across both calls. Consequently, the setting of the vm page's PG_BUSY flag is not even visible to other threads that are following the synchronization protocol. This change (1) eliminates the calls to vm_page_busy() that immediately precede a call to vm_page_remove() or functions, such as vm_page_free() and vm_page_rename(), that call it and (2) relaxes the requirement in vm_page_remove() that the vm page's PG_BUSY flag is set. Now, the vm page's PG_BUSY flag is set only when the vm object lock is released while the vm page is still in transition. Typically, this is when it is undergoing I/O.
Diffstat (limited to 'sys/sparc64')
-rw-r--r--sys/sparc64/sparc64/pmap.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index f76a45c1..c07d5d2 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -1087,7 +1087,6 @@ pmap_release(pmap_t pm)
vm_page_lock_queues();
if (vm_page_sleep_if_busy(m, FALSE, "pmaprl"))
continue;
- vm_page_busy(m);
KASSERT(m->hold_count == 0,
("pmap_release: freeing held tsb page"));
m->md.pmap = NULL;
OpenPOWER on IntegriCloud