freebsd-dev/sys/vm
Jayachandran C. 17dca144a2 Make vm_contig_grow_cache() extern, and use it when vm_phys_alloc_contig()
fails to allocate MIPS page table pages.  The current usage of VM_WAIT in
case of vm_phys_alloc_contig() failure is not correct, because:

"There is no guarantee that any of the available free (or cached) pages
after the VM_WAIT will fall within the range of suitable physical
addresses.  Every time this function sleeps and a single page is freed
(or cached) by someone else, this function will be reawakened.  With
a little bad luck, you could spin indefinitely."

We also add low and high parameters to vm_contig_grow_cache() and
vm_contig_launder() so that we restrict vm_contig_launder() to the range
of pages we are interested in.

Reported by: alc

Reviewed by:	alc
Approved by:	rrs (mentor)
2010-06-04 06:35:36 +00:00
..
default_pager.c
device_pager.c Eliminate page queues locking around most calls to vm_page_free(). 2010-05-06 18:58:32 +00:00
memguard.c
memguard.h
phys_pager.c Handle busy status of the page in a way expected for pager_getpage(). 2010-05-03 19:19:58 +00:00
pmap.h Roughly half of a typical pmap_mincore() implementation is machine- 2010-05-24 14:26:57 +00:00
redzone.c
redzone.h
sg_pager.c Eliminate page queues locking around most calls to vm_page_free(). 2010-05-06 18:58:32 +00:00
swap_pager.c Call vm_page_deactivate() rather than vm_page_dontneed() in 2010-05-09 16:27:42 +00:00
swap_pager.h
uma_core.c It makes more sense for the object-based backend allocator to use OBJT_PHYS 2010-05-03 17:35:31 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h
uma.h
vm_contig.c Make vm_contig_grow_cache() extern, and use it when vm_phys_alloc_contig() 2010-06-04 06:35:36 +00:00
vm_extern.h
vm_fault.c When waiting for the busy page, do not unlock the object unless unlock 2010-05-20 08:51:01 +00:00
vm_glue.c Eliminate page queues locking around most calls to vm_page_free(). 2010-05-06 18:58:32 +00:00
vm_init.c
vm_kern.c
vm_kern.h
vm_map.c Push down page queues lock acquisition in pmap_enter_object() and 2010-05-26 18:00:44 +00:00
vm_map.h
vm_meter.c
vm_mmap.c Push down page queues lock acquisition in pmap_enter_object() and 2010-05-26 18:00:44 +00:00
vm_object.c Roughly half of a typical pmap_mincore() implementation is machine- 2010-05-24 14:26:57 +00:00
vm_object.h
vm_page.c Add assertion and comment in vm_page_flag_set() describing the expectations 2010-06-03 10:11:45 +00:00
vm_page.h When I pushed down the page queues lock into pmap_is_modified(), I created 2010-05-29 17:10:45 +00:00
vm_pageout.c Roughly half of a typical pmap_mincore() implementation is machine- 2010-05-24 14:26:57 +00:00
vm_pageout.h Make vm_contig_grow_cache() extern, and use it when vm_phys_alloc_contig() 2010-06-04 06:35:36 +00:00
vm_pager.c
vm_pager.h
vm_param.h
vm_phys.c
vm_phys.h
vm_reserv.c
vm_reserv.h
vm_unix.c
vm_zeroidle.c
vm.h
vnode_pager.c Minimize the use of the page queues lock for synchronizing access to the 2010-06-02 15:46:37 +00:00
vnode_pager.h