bmilekic 7a6a2d65d4 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-05-31 21:46:06 +00:00
2004-05-31 21:46:06 +00:00
2004-06-15 01:02:00 +00:00
2004-05-31 21:46:06 +00:00
2004-06-11 11:16:26 +00:00
2004-06-17 17:16:53 +00:00