freebsd-nq/sys/vm
Bosko Milekic c5c1b16ec5 While we want the recursion protection for the bucket zones so that
recursion from the VM is handled (and the calling code that allocates
buckets knows how to deal with it), we do not want to prevent allocation
from the slab header zones (slabzone and slabrefzone) if uk_recurse is
not zero for them.  The reason is that it could lead to NULL being
returned for the slab header allocations even in the M_WAITOK
case, and the caller can't handle that (this is also explained in a
comment with this commit).

The problem analysis is documented in our mailing lists:
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=153445+0+archive/2004/freebsd-current/20041231.freebsd-current

(see entire thread for proper context).

Crash dump data provided by: Peter Holm <peter@holm.cc>
2005-01-11 03:33:09 +00:00
..
default_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
device_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
phys_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
pmap.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
swap_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
swap_pager.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma_core.c While we want the recursion protection for the bucket zones so that 2005-01-11 03:33:09 +00:00
uma_dbg.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma_dbg.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma_int.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
uma.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_contig.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_extern.h Disable U area swapping and remove the routines that create, destroy, 2004-11-20 02:29:00 +00:00
vm_fault.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_glue.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_init.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_kern.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_kern.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_map.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_map.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_meter.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_mmap.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_object.c Move the acquisition and release of the page queues lock outside of a loop 2005-01-08 23:41:11 +00:00
vm_object.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_page.c Transfer responsibility for freeing the page taken from the cache 2005-01-07 05:02:19 +00:00
vm_page.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageout.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageout.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pageq.c Remove references to L1 in the comments, according to Alan they are 2004-06-07 19:33:05 +00:00
vm_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_pager.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_param.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_unix.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_zeroidle.c Remove dangling variable 2004-11-06 11:33:11 +00:00
vm.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vnode_pager.c /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vnode_pager.h /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00