summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2012-01-28 17:41:42 +0000
committerkmacy <kmacy@FreeBSD.org>2012-01-28 17:41:42 +0000
commitb498d306f1e17ce5221db3a701c810f4816d62a3 (patch)
tree33cba47e10ac6aa7f87b5f3675f713b56b2b9986 /sys/cddl
parent4c87ca2cdcbc5b75ee372b4be70e63d77315bb2e (diff)
downloadFreeBSD-src-b498d306f1e17ce5221db3a701c810f4816d62a3.zip
FreeBSD-src-b498d306f1e17ce5221db3a701c810f4816d62a3.tar.gz
add tunable for developers working on areas outside of ZFS
to further reduce core size by excluding ARC metadata buffers from core dumps
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
index 7515bd5..d465454 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c
@@ -42,6 +42,10 @@ static int zio_use_uma = 0;
TUNABLE_INT("vfs.zfs.zio.use_uma", &zio_use_uma);
SYSCTL_INT(_vfs_zfs_zio, OID_AUTO, use_uma, CTLFLAG_RDTUN, &zio_use_uma, 0,
"Use uma(9) for ZIO allocations");
+static int zio_exclude_metadata = 0;
+TUNABLE_INT("vfs.zfs.zio.exclude_metadata", &zio_exclude_metadata);
+SYSCTL_INT(_vfs_zfs_zio, OID_AUTO, exclude_metadata, CTLFLAG_RDTUN, &zio_exclude_metadata, 0,
+ "Exclude metadata buffers from dumps as well");
/*
* ==========================================================================
@@ -217,13 +221,14 @@ void *
zio_buf_alloc(size_t size)
{
size_t c = (size - 1) >> SPA_MINBLOCKSHIFT;
+ int flags = zio_exclude_metadata ? KM_NODEBUG : 0;
ASSERT(c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT);
if (zio_use_uma)
return (kmem_cache_alloc(zio_buf_cache[c], KM_PUSHPAGE));
else
- return (kmem_alloc(size, KM_SLEEP));
+ return (kmem_alloc(size, KM_SLEEP|flags));
}
/*
OpenPOWER on IntegriCloud