kernel - Fix MADV_NOSYNC and MAP_NOSYNC, improve vkernel performance
authorMatthew Dillon <dillon@apollo.backplane.com>
Wed, 15 Sep 2010 20:22:25 +0000 (13:22 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Wed, 15 Sep 2010 20:22:25 +0000 (13:22 -0700)
commit2421aac7b1fbe003e478476e2d4f351d15b502f0
treeaf4cfdd87fa2e28cdc81a2f5824969397db37d9b
parentad54aa11a40ac066e6f92ea71328f14b0656e6aa
kernel - Fix MADV_NOSYNC and MAP_NOSYNC, improve vkernel performance

* The vm_prefault() code was not setting PG_NOSYNC so only 1/4 of the
  pages of a NOSYNC memory mapping were actually NOSYNC.

* This bug caused the vkernel to essentially flush out all of its
  dirty memory pages every 30 seconds.  Needless to say this was bad.

  The vkernel can now be run with its memory set in the multiples
  of gigabytes (if you happen to have that much real memory) without
  creating a massive disk load.
sys/vm/vm_fault.c