freebsd-dev/sys/vm
Alan Cox da61b9a69e Use sf_buf_alloc() instead of vm_map_find() on exec_map to create the
ephemeral mappings that are used as the source for three copy
operations from kernel space to user space.  There are two reasons for
making this change: (1) Under heavy load exec_map can fill up causing
vm_map_find() to fail.  When it fails, the nascent process is aborted
(SIGABRT).  Whereas, this reimplementation using sf_buf_alloc()
sleeps.  (2) Although it is possible to sleep on vm_map_find()'s
failure until address space becomes available (see kmem_alloc_wait()),
using sf_buf_alloc() is faster.  Furthermore, the reimplementation
uses a CPU private mapping, avoiding a TLB shootdown on
multiprocessors.

Problem uncovered by: kris@
Reviewed by: tegge@
MFC after: 3 weeks
2005-12-16 18:34:14 +00:00
..
default_pager.c
device_pager.c
memguard.c
memguard.h
phys_pager.c
pmap.h Eliminate pmap_init2(). It's no longer used. 2005-11-20 06:09:49 +00:00
swap_pager.c Make sure we have a bufobj before calling bstrategy(). 2005-09-21 15:01:09 +00:00
swap_pager.h
uma_core.c Change format string for u_int64_t to %ju from %llu, in order to use the 2005-10-20 21:28:31 +00:00
uma_dbg.c Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_dbg.h Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_int.h Wrap inlines in uma_int.h in #ifdef _KERNEL so that uma_int.h can be 2005-08-04 10:03:53 +00:00
uma.h As alc pointed out to me, vm_page.c 1.305 was incomplete: uma_startup() 2005-10-08 21:03:54 +00:00
vm_contig.c Check for marker pages when scanning active and inactive page queues. 2005-08-12 18:17:40 +00:00
vm_extern.h Use sf_buf_alloc() instead of vm_map_find() on exec_map to create the 2005-12-16 18:34:14 +00:00
vm_fault.c Remove unneeded calls to pmap_remove_all(). The given page is not mapped. 2005-12-11 22:06:57 +00:00
vm_glue.c Use sf_buf_alloc() instead of vm_map_find() on exec_map to create the 2005-12-16 18:34:14 +00:00
vm_init.c
vm_kern.c
vm_kern.h
vm_map.c Simplify vmspace_dofree(). 2005-12-04 22:55:41 +00:00
vm_map.h Eliminate unneeded preallocation at initialization. 2005-12-03 22:41:15 +00:00
vm_meter.c
vm_mmap.c Move execve's access time update functionality into a new 2005-10-12 06:56:00 +00:00
vm_object.c Eliminate unneeded preallocation at initialization. 2005-12-03 19:37:29 +00:00
vm_object.h
vm_page.c Assert that the page that is given to vm_page_free_toq() does not have any 2005-12-13 19:59:09 +00:00
vm_page.h Don't perform a nested include of opt_vmpage.h if LIBMEMSTAT is defined, 2005-08-04 10:05:11 +00:00
vm_pageout.c Reimplement the reclamation of PV entries. Specifically, perform 2005-11-09 08:19:21 +00:00
vm_pageout.h
vm_pageq.c
vm_pager.c Normalize a significant number of kernel malloc type names: 2005-10-31 15:41:29 +00:00
vm_pager.h
vm_param.h
vm_unix.c
vm_zeroidle.c Trim a couple of unneeded includes. 2005-09-29 19:13:52 +00:00
vm.h
vnode_pager.c Rate limit vnode_pager_putpages printfs to once a second. 2005-11-01 23:00:24 +00:00
vnode_pager.h