diff options
author | glebius <glebius@FreeBSD.org> | 2014-03-04 14:21:07 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-03-04 14:21:07 +0000 |
commit | 322a3c94d3d120bb067e52cd49285f1c90c17e55 (patch) | |
tree | 6cb50c0b6df9e62fa570c2e5f9f776bb8e61b850 /sys/vm/uma_core.c | |
parent | 352d508b164f60d6e5de69dba908cd0b34e56a26 (diff) | |
download | FreeBSD-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.c | 29 |
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) { |