summaryrefslogtreecommitdiffstats
path: root/sys/vm/uma_dbg.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2013-06-20 19:08:12 +0000
committerjeff <jeff@FreeBSD.org>2013-06-20 19:08:12 +0000
commita6b6e4783cacc87cafc71706cba9641c4c3718cf (patch)
treeb028c6ab28bde9b40465f529e8e9618d39716baf /sys/vm/uma_dbg.c
parentda3b12a1bbf9d2863451efdee810a0ee646494a9 (diff)
downloadFreeBSD-src-a6b6e4783cacc87cafc71706cba9641c4c3718cf.zip
FreeBSD-src-a6b6e4783cacc87cafc71706cba9641c4c3718cf.tar.gz
- Add a per-zone lock for zones without kegs.
- Be more explicit about zone vs keg locking. This functionally changes almost nothing. - Add a size parameter to uma_zcache_create() so we can size the buckets. - Pass the zone to bucket_alloc() so it can modify allocation flags as appropriate. - Fix a bug in zone_alloc_bucket() where I missed an address of operator in a failure case. (Found by pho) Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'sys/vm/uma_dbg.c')
-rw-r--r--sys/vm/uma_dbg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/uma_dbg.c b/sys/vm/uma_dbg.c
index 47dd81d..48a5e6d 100644
--- a/sys/vm/uma_dbg.c
+++ b/sys/vm/uma_dbg.c
@@ -231,6 +231,8 @@ uma_dbg_alloc(uma_zone_t zone, uma_slab_t slab, void *item)
uma_keg_t keg;
int freei;
+ if (zone_first_keg(zone) == NULL)
+ return;
if (slab == NULL) {
slab = uma_dbg_getslab(zone, item);
if (slab == NULL)
@@ -259,6 +261,8 @@ uma_dbg_free(uma_zone_t zone, uma_slab_t slab, void *item)
uma_keg_t keg;
int freei;
+ if (zone_first_keg(zone) == NULL)
+ return;
if (slab == NULL) {
slab = uma_dbg_getslab(zone, item);
if (slab == NULL)
OpenPOWER on IntegriCloud