summaryrefslogtreecommitdiffstats
path: root/sys/vm/uma_core.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-03-04 14:21:07 +0000
committerglebius <glebius@FreeBSD.org>2014-03-04 14:21:07 +0000
commit322a3c94d3d120bb067e52cd49285f1c90c17e55 (patch)
tree6cb50c0b6df9e62fa570c2e5f9f776bb8e61b850 /sys/vm/uma_core.c
parent352d508b164f60d6e5de69dba908cd0b34e56a26 (diff)
downloadFreeBSD-src-322a3c94d3d120bb067e52cd49285f1c90c17e55.zip
FreeBSD-src-322a3c94d3d120bb067e52cd49285f1c90c17e55.tar.gz
Merge 261593 from head:
Provide macros that allow easily export uma(9) zone limits and current usage via sysctl(9).
Diffstat (limited to 'sys/vm/uma_core.c')
-rw-r--r--sys/vm/uma_core.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/vm/uma_core.c b/sys/vm/uma_core.c
index 5b1cbb5..5bfbb72 100644
--- a/sys/vm/uma_core.c
+++ b/sys/vm/uma_core.c
@@ -3462,6 +3462,35 @@ skip:
return (error);
}
+int
+sysctl_handle_uma_zone_max(SYSCTL_HANDLER_ARGS)
+{
+ uma_zone_t zone = *(uma_zone_t *)arg1;
+ int error, max, old;
+
+ old = max = uma_zone_get_max(zone);
+ error = sysctl_handle_int(oidp, &max, 0, req);
+ if (error || !req->newptr)
+ return (error);
+
+ if (max < old)
+ return (EINVAL);
+
+ uma_zone_set_max(zone, max);
+
+ return (0);
+}
+
+int
+sysctl_handle_uma_zone_cur(SYSCTL_HANDLER_ARGS)
+{
+ uma_zone_t zone = *(uma_zone_t *)arg1;
+ int cur;
+
+ cur = uma_zone_get_cur(zone);
+ return (sysctl_handle_int(oidp, &cur, 0, req));
+}
+
#ifdef DDB
DB_SHOW_COMMAND(uma, db_show_uma)
{
OpenPOWER on IntegriCloud