diff options
author | bmilekic <bmilekic@FreeBSD.org> | 2004-06-23 21:59:03 +0000 |
---|---|---|
committer | bmilekic <bmilekic@FreeBSD.org> | 2004-06-23 21:59:03 +0000 |
commit | 7a6a2d65d41bed56612635fa67dda2494fe86674 (patch) | |
tree | 3f5705bfda8933827851f675bfe72339b3622685 /lib/libkvm | |
parent | 51304a50f3743922c7059a6d6d1eed79ced8f1c9 (diff) | |
download | FreeBSD-src-7a6a2d65d41bed56612635fa67dda2494fe86674.zip FreeBSD-src-7a6a2d65d41bed56612635fa67dda2494fe86674.tar.gz |
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>
Diffstat (limited to 'lib/libkvm')
0 files changed, 0 insertions, 0 deletions