1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-20 15:43:16 +00:00
freebsd/sys/vm
Bosko Milekic cc822cb53e Make uma_mtx MTX_RECURSE. Here's why:
The general UMA lock is a recursion-allowed lock because
there is a code path where, while we're still configured
to use startup_alloc() for backend page allocations, we
may end up in uma_reclaim() which calls zone_foreach(zone_drain),
which grabs uma_mtx, only to later call into startup_alloc()
because while freeing we needed to allocate a bucket.  Since
startup_alloc() also takes uma_mtx, we need to be able to
recurse on it.

This exact explanation also added as comment above mtx_init().

Trace showing recursion reported by: Peter Holm <peter-at-holm.cc>
2004-06-23 21:59:03 +00:00
..
default_pager.c
device_pager.c Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
phys_pager.c
pmap.h
swap_pager.c In swap_pager_getpages(), bp->b_dev can be NULL, particularly for the 2004-06-23 15:15:07 +00:00
swap_pager.h
uma_core.c Make uma_mtx MTX_RECURSE. Here's why: 2004-06-23 21:59:03 +00:00
uma_dbg.c Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
uma_dbg.h
uma_int.h Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
uma.h Fix a comment above uma_zsecond_create(), describing its arguments. 2004-06-01 01:36:26 +00:00
vm_contig.c Make contigmalloc() more reliable: 2004-06-15 01:02:00 +00:00
vm_extern.h
vm_fault.c
vm_glue.c Nice, is a property of a process as a whole.. 2004-06-16 00:26:31 +00:00
vm_init.c
vm_kern.c Bring in mbuma to replace mballoc. 2004-05-31 21:46:06 +00:00
vm_kern.h
vm_map.c
vm_map.h
vm_meter.c
vm_mmap.c Deorbit COMPAT_SUNOS. 2004-06-11 11:16:26 +00:00
vm_object.c MFS: vm_map.c rev 1.187.2.27 through 1.187.2.29, fix MS_INVALIDATE 2004-05-25 18:40:53 +00:00
vm_object.h
vm_page.c Remove spl() calls. Update comments to reflect the removal of spl() calls. 2004-06-19 04:19:47 +00:00
vm_page.h Update stale comments regarding page coloring. 2004-06-05 21:06:42 +00:00
vm_pageout.c Nice, is a property of a process as a whole.. 2004-06-16 00:26:31 +00:00
vm_pageout.h
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
vm_pager.h
vm_param.h Second half of the dev_t cleanup. 2004-06-17 17:16:53 +00:00
vm_unix.c
vm_zeroidle.c
vm.h
vnode_pager.c
vnode_pager.h