aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Somers <asomers@FreeBSD.org>2024-04-22 18:03:40 +0000
committerAlan Somers <asomers@FreeBSD.org>2024-04-22 19:20:03 +0000
commit3acf3feaa8c5b15e820e86c1526c9a97fc5ad247 (patch)
tree2c5740015c98c1210b27b445694290769a4056e8
parent5cafc38f11297cb302514f3cedb703a3ed199a22 (diff)
downloadsrc-3acf3feaa8c5b15e820e86c1526c9a97fc5ad247.tar.gz
src-3acf3feaa8c5b15e820e86c1526c9a97fc5ad247.zip
geli: add a read-only kern.geom.eli.use_uma_bytes sysctl
It reports the value of the g_eli_alloc_sz variable. Allocations of this size or less will use UMA. Larger allocations will use malloc. Since malloc is slower, it is useful for users to know this variable so they can avoid such allocations. For example, ZFS users can set vfs.zfs.vdev.aggregation_limit to this value. MFC after: 1 week Sponsored by: Axcient Reviewed by: markj, imp Differential Revision: https://reviews.freebsd.org/D44904
-rw-r--r--sys/geom/eli/g_eli.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/geom/eli/g_eli.c b/sys/geom/eli/g_eli.c
index 2bcd61f45640..5d769d606d20 100644
--- a/sys/geom/eli/g_eli.c
+++ b/sys/geom/eli/g_eli.c
@@ -100,11 +100,13 @@ SYSCTL_BOOL(_kern_geom_eli, OID_AUTO, blocking_malloc, CTLFLAG_RWTUN,
static bool g_eli_unmapped_io = true;
SYSCTL_BOOL(_kern_geom_eli, OID_AUTO, unmapped_io, CTLFLAG_RDTUN,
&g_eli_unmapped_io, 0, "Enable support for unmapped I/O");
+static int g_eli_alloc_sz;
+SYSCTL_UINT(_kern_geom_eli, OID_AUTO, use_uma_bytes, CTLFLAG_RD,
+ &g_eli_alloc_sz, 0, "Use uma(9) for allocations of this size or smaller.");
static struct sx g_eli_umalock; /* Controls changes to UMA zone. */
SX_SYSINIT(g_eli_umalock, &g_eli_umalock, "GELI UMA");
static uma_zone_t g_eli_uma = NULL;
-static int g_eli_alloc_sz;
static volatile int g_eli_umaoutstanding;
static volatile int g_eli_devs;