kernel - SWAP CACHE part 11/many - Write improvements, fix backing store free
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 6 Feb 2010 00:21:10 +0000 (16:21 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 6 Feb 2010 00:21:10 +0000 (16:21 -0800)
commit5ac041170e70cbebc44f0b51f3a236298b9d353c
tree31d9fc1f440f231a2ce1614962807bbd4db5bd46
parent1e5196f08d08b182e431f9490abed276ccc7bfea
kernel - SWAP CACHE part 11/many - Write improvements, fix backing store free

* Improve write staging by not counting VM pages which already have a
  swap assignment when doing the limited scan of the INACTIVE VM page
  queue.

  As the swapcache starts to perform more and more disk I/O goes to it,
  radically increasing the data rate and also radically increasing the
  rate at which pages are shuffled between VM page queues.  At some
  point enough data is coming from the swapcache that vm.swapcache.maxlaunder
  is unable to keep up even when sufficient burst bandwidth is available.

  This led to an asymptotic caching curve.  After the fix the caching
  curve is linear (for data sets which fit in the swapcache).

* The swapcache associated with meta-data (VCHR vnodes) was not being
  destroyed on umount.  Adjust a conditional such that it is properly
  destroyed.  Otherwise stale data might be retained across e.g. a
  media change.
sys/vm/vm_object.c
sys/vm/vm_swapcache.c