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
..
2004-06-23 08:06:52 +00:00
2004-06-19 20:50:50 +00:00
2004-06-17 17:16:53 +00:00
2004-06-14 00:38:54 +00:00
2004-06-23 21:49:03 +00:00
2004-06-21 21:59:00 +00:00
2004-06-23 08:06:52 +00:00
2004-06-16 09:47:26 +00:00
2004-06-23 14:22:14 +00:00
2004-06-22 20:32:17 +00:00
2004-06-21 21:57:31 +00:00
2004-06-23 21:59:03 +00:00