svn commit: r314664 - stable/10/sys/vm
Andriy Gapon
avg at FreeBSD.org
Sat Mar 4 12:05:52 UTC 2017
Author: avg
Date: Sat Mar 4 12:05:50 2017
New Revision: 314664
URL: https://svnweb.freebsd.org/changeset/base/314664
Log:
MFC r314272: call vm_lowmem hook in uma_reclaim_worker
Modified:
stable/10/sys/vm/uma_core.c
stable/10/sys/vm/vm_kern.c
stable/10/sys/vm/vm_pageout.c
stable/10/sys/vm/vm_pageout.h
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/vm/uma_core.c
==============================================================================
--- stable/10/sys/vm/uma_core.c Sat Mar 4 12:05:46 2017 (r314663)
+++ stable/10/sys/vm/uma_core.c Sat Mar 4 12:05:50 2017 (r314664)
@@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bitset.h>
+#include <sys/eventhandler.h>
#include <sys/kernel.h>
#include <sys/types.h>
#include <sys/queue.h>
@@ -3244,6 +3245,9 @@ uma_reclaim_worker(void *arg __unused)
"umarcl", 0);
if (uma_reclaim_needed) {
uma_reclaim_needed = 0;
+ sx_xunlock(&uma_drain_lock);
+ EVENTHANDLER_INVOKE(vm_lowmem, VM_LOW_KMEM);
+ sx_xlock(&uma_drain_lock);
uma_reclaim_locked(true);
}
}
Modified: stable/10/sys/vm/vm_kern.c
==============================================================================
--- stable/10/sys/vm/vm_kern.c Sat Mar 4 12:05:46 2017 (r314663)
+++ stable/10/sys/vm/vm_kern.c Sat Mar 4 12:05:50 2017 (r314664)
@@ -542,11 +542,13 @@ debug_vm_lowmem(SYSCTL_HANDLER_ARGS)
error = sysctl_handle_int(oidp, &i, 0, req);
if (error)
return (error);
- if (i)
- EVENTHANDLER_INVOKE(vm_lowmem, 0);
+ if ((i & ~(VM_LOW_KMEM | VM_LOW_PAGES)) != 0)
+ return (EINVAL);
+ if (i != 0)
+ EVENTHANDLER_INVOKE(vm_lowmem, i);
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");
+ debug_vm_lowmem, "I", "set to trigger vm_lowmem event with given flags");
#endif
Modified: stable/10/sys/vm/vm_pageout.c
==============================================================================
--- stable/10/sys/vm/vm_pageout.c Sat Mar 4 12:05:46 2017 (r314663)
+++ stable/10/sys/vm/vm_pageout.c Sat Mar 4 12:05:50 2017 (r314664)
@@ -962,7 +962,7 @@ vm_pageout_scan(struct vm_domain *vmd, i
* Decrease registered cache sizes.
*/
SDT_PROBE0(vm, , , vm__lowmem_scan);
- EVENTHANDLER_INVOKE(vm_lowmem, 0);
+ EVENTHANDLER_INVOKE(vm_lowmem, VM_LOW_PAGES);
/*
* We do this explicitly after the caches have been
* drained above.
Modified: stable/10/sys/vm/vm_pageout.h
==============================================================================
--- stable/10/sys/vm/vm_pageout.h Sat Mar 4 12:05:46 2017 (r314663)
+++ stable/10/sys/vm/vm_pageout.h Sat Mar 4 12:05:50 2017 (r314664)
@@ -87,6 +87,12 @@ extern int vm_pageout_page_count;
#define VM_OOM_SWAPZ 2
/*
+ * vm_lowmem flags.
+ */
+#define VM_LOW_KMEM 0x01
+#define VM_LOW_PAGES 0x02
+
+/*
* Exported routines.
*/
More information about the svn-src-stable
mailing list