summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_reserv.h
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2013-05-12 16:50:18 +0000
committeralc <alc@FreeBSD.org>2013-05-12 16:50:18 +0000
commit7d20e37fb658b0e2cd7f3c13dac8022e0e866a21 (patch)
treef0a16a6164c2636942cacaa989a08f31dafdb3f4 /sys/vm/vm_reserv.h
parent6907881cb814953c545475a8a63e3afc402bd547 (diff)
downloadFreeBSD-src-7d20e37fb658b0e2cd7f3c13dac8022e0e866a21.zip
FreeBSD-src-7d20e37fb658b0e2cd7f3c13dac8022e0e866a21.tar.gz
Refactor vm_page_alloc()'s interactions with vm_reserv_alloc_page() and
vm_page_insert() so that (1) vm_radix_lookup_le() is never called while the free page queues lock is held and (2) vm_radix_lookup_le() is called at most once. This change reduces the average time that the free page queues lock is held by vm_page_alloc() as well as vm_page_alloc()'s average overall running time. Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'sys/vm/vm_reserv.h')
-rw-r--r--sys/vm/vm_reserv.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_reserv.h b/sys/vm/vm_reserv.h
index a2b6647..4c142c7 100644
--- a/sys/vm/vm_reserv.h
+++ b/sys/vm/vm_reserv.h
@@ -48,7 +48,8 @@
vm_page_t vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t pindex,
u_long npages, vm_paddr_t low, vm_paddr_t high,
u_long alignment, vm_paddr_t boundary);
-vm_page_t vm_reserv_alloc_page(vm_object_t object, vm_pindex_t pindex);
+vm_page_t vm_reserv_alloc_page(vm_object_t object, vm_pindex_t pindex,
+ vm_page_t mpred);
void vm_reserv_break_all(vm_object_t object);
boolean_t vm_reserv_free_page(vm_page_t m);
void vm_reserv_init(void);
OpenPOWER on IntegriCloud