kernel - Increase VM page free minimums for allocations
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Oct 2011 04:53:43 +0000 (21:53 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 25 Oct 2011 04:53:43 +0000 (21:53 -0700)
commit0a4d482811b78282cf243f23694d804716050c98
treeab903ac89aa589a1f56c40274e888bfa36dbb577
parentead125b874628dc824f4c2b1a3b12c4520fae137
kernel - Increase VM page free minimums for allocations

* Recent work removed the global vm_token and moved to per-vm_page_queue
  spin locks, which allows cpus to allocate VM pages concurrently.  This
  could result in a situation where remaining free pages got blown out
  without giving the system a chance to replentish them.

* Symptoms included the BUF/BIO system complaining of memory exhaustion
  and the pageout daemon deadlocking on low memory (which would deadlock
  the whole machine in a memory-exhausted state).

* Increase minimums to prevent this.  In particular, the interrupt_free_min
  was previously hardwired to a value of 2.. as in 2 pages (8192 bytes),
  which is an excessively low value.  The new calculations place this value
  (typically) around a few-hundred pages.
sys/vm/vm_pageout.c
sys/vm/vnode_pager.c