summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-09-18 22:56:58 +0000
committeralc <alc@FreeBSD.org>2004-09-18 22:56:58 +0000
commit3b2a3888c0a2ce3c7e8fa7dbf1d4232a7326391f (patch)
treefc19ccee6d73c6ba29aa60c70a73d44b8f3825fc /sys/ia64
parent82fa053d2b3f6559bb183a30407d1b6e04ef84e6 (diff)
downloadFreeBSD-src-3b2a3888c0a2ce3c7e8fa7dbf1d4232a7326391f.zip
FreeBSD-src-3b2a3888c0a2ce3c7e8fa7dbf1d4232a7326391f.tar.gz
Release the page queues lock earlier in pmap_protect() and pmap_remove() in
order to reduce contention.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/pmap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index 3f62fd6..06c7d6b 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -1351,11 +1351,10 @@ pmap_remove(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
}
}
}
-
out:
+ vm_page_unlock_queues();
pmap_install(oldpmap);
PMAP_UNLOCK(pmap);
- vm_page_unlock_queues();
}
/*
@@ -1468,9 +1467,9 @@ pmap_protect(pmap_t pmap, vm_offset_t sva, vm_offset_t eva, vm_prot_t prot)
sva += PAGE_SIZE;
}
+ vm_page_unlock_queues();
pmap_install(oldpmap);
PMAP_UNLOCK(pmap);
- vm_page_unlock_queues();
}
/*
OpenPOWER on IntegriCloud