From 967fa55dfb05c10ce8ad6bb9e4433e1a4e1e8e92 Mon Sep 17 00:00:00 2001 From: rwatson Date: Mon, 23 Feb 2009 23:00:12 +0000 Subject: Add a debugging sysctl, debug.vm_lowmem, that when assigned a value of 1 will trigger a pass through the VM's low-memory handlers, such as protocol and UMA drain routines. This makes it easier to exercise these otherwise rarely-invoked code paths. MFC after: 3 days --- sys/vm/vm_kern.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'sys/vm') diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c index b438058..f80ad30 100644 --- a/sys/vm/vm_kern.c +++ b/sys/vm/vm_kern.c @@ -73,6 +73,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -500,3 +501,24 @@ kmem_init(start, end) /* ... and ending with the completion of the above `insert' */ vm_map_unlock(m); } + +/* + * Allow userspace to directly trigger the VM drain routine for testing + * purposes. + */ +static int +debug_vm_lowmem(SYSCTL_HANDLER_ARGS) +{ + int error, i; + + i = 0; + error = sysctl_handle_int(oidp, &i, 0, req); + if (error) + return (error); + if (i) + EVENTHANDLER_INVOKE(vm_lowmem, 0); + return (0); +} + +SYSCTL_PROC(_debug, OID_AUTO, vm_lowmem, CTLTYPE_INT | CTLFLAG_RW, 0, 0, + debug_vm_lowmem, "I", "set to trigger vm_lowmem event"); -- cgit v1.1