summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_uio.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2010-05-08 20:34:01 +0000
committeralc <alc@FreeBSD.org>2010-05-08 20:34:01 +0000
commit40b44f9713de70170857e6291876dfce94b6ef43 (patch)
tree55e1683864edab13ef62b5f9fac6a4928f23f506 /sys/kern/subr_uio.c
parent94ac1169df0fe3609aa671582574d421e89b7ff3 (diff)
downloadFreeBSD-src-40b44f9713de70170857e6291876dfce94b6ef43.zip
FreeBSD-src-40b44f9713de70170857e6291876dfce94b6ef43.tar.gz
Push down the page queues into vm_page_cache(), vm_page_try_to_cache(), and
vm_page_try_to_free(). Consequently, push down the page queues lock into pmap_enter_quick(), pmap_page_wired_mapped(), pmap_remove_all(), and pmap_remove_write(). Push down the page queues lock into Xen's pmap_page_is_mapped(). (I overlooked the Xen pmap in r207702.) Switch to a per-processor counter for the total number of pages cached.
Diffstat (limited to 'sys/kern/subr_uio.c')
-rw-r--r--sys/kern/subr_uio.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/sys/kern/subr_uio.c b/sys/kern/subr_uio.c
index 783a8d6..9b93005 100644
--- a/sys/kern/subr_uio.c
+++ b/sys/kern/subr_uio.c
@@ -105,7 +105,6 @@ retry:
if (vm_page_sleep_if_busy(user_pg, TRUE, "vm_pgmoveco"))
goto retry;
vm_page_lock(user_pg);
- vm_page_lock_queues();
pmap_remove_all(user_pg);
vm_page_free(user_pg);
vm_page_unlock(user_pg);
@@ -117,11 +116,9 @@ retry:
*/
if (uobject->backing_object != NULL)
pmap_remove(map->pmap, uaddr, uaddr + PAGE_SIZE);
- vm_page_lock_queues();
}
vm_page_insert(kern_pg, uobject, upindex);
vm_page_dirty(kern_pg);
- vm_page_unlock_queues();
VM_OBJECT_UNLOCK(uobject);
vm_map_lookup_done(map, entry);
return(KERN_SUCCESS);
OpenPOWER on IntegriCloud