kernel - vm - add vm_wait_nominal()
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 5 Mar 2010 00:05:38 +0000 (16:05 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 5 Mar 2010 00:05:38 +0000 (16:05 -0800)
* Add vm_wait_nominal(), a function which activates the pageout daemon
  if necessary and waits for sufficient memory to become free for
  a kernel heavy user.

sys/vm/vm_extern.h
sys/vm/vm_page.c

index 1ea62be..49fa4b9 100644 (file)
@@ -96,6 +96,7 @@ int vm_fault_wire (vm_map_t, vm_map_entry_t, boolean_t);
 void vm_fork (struct proc *, struct proc *, int);
 void vm_fault_ratecheck(void);
 void vm_waitproc (struct proc *);
+void vm_wait_nominal (void);
 void vm_init_limits(struct proc *);
 
 int vm_mmap (vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, void *, vm_ooffset_t);
index 09c8382..2a20a23 100644 (file)
@@ -834,6 +834,17 @@ loop:
        return (m);
 }
 
+/*
+ * Wait for sufficient free memory for nominal heavy memory use kernel
+ * operations.
+ */
+void
+vm_wait_nominal(void)
+{
+       while (vm_page_count_min(0))
+               vm_wait(0);
+}
+
 /*
  * Block until free pages are available for allocation, called in various
  * places before memory allocations.