summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_pageout.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-11-21 09:17:56 +0000
committerjeff <jeff@FreeBSD.org>2002-11-21 09:17:56 +0000
commitde79ec94a5618dc0948e9e4033e44e677d1ae16a (patch)
treee549a4a4881fff6d10155c78766331a6198d8970 /sys/vm/vm_pageout.c
parent86248f7d291801590b224272bc6e5b94e6ed5cea (diff)
downloadFreeBSD-src-de79ec94a5618dc0948e9e4033e44e677d1ae16a.zip
FreeBSD-src-de79ec94a5618dc0948e9e4033e44e677d1ae16a.tar.gz
- Add an event that is triggered when the system is low on memory. This is
intended to be used by significant memory consumers so that they may drain some of their caches. Inspired by: phk Approved by: re Tested on: x86, alpha
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r--sys/vm/vm_pageout.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index 1f024e7..ec43082 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -76,6 +76,7 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
+#include <sys/eventhandler.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/proc.h>
@@ -678,10 +679,17 @@ vm_pageout_scan(int pass)
GIANT_REQUIRED;
/*
+ * Decrease registered cache sizes.
+ */
+ EVENTHANDLER_INVOKE(vm_lowmem, 0);
+ /*
+ * We do this explicitly after the caches have been drained above.
+ */
+ uma_reclaim();
+ /*
* Do whatever cleanup that the pmap code can.
*/
vm_pageout_pmap_collect();
- uma_reclaim();
addl_page_shortage_init = vm_pageout_deficit;
vm_pageout_deficit = 0;
OpenPOWER on IntegriCloud