kernel - Address excessive stall in pageout during deadlock avoidance
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 1 Apr 2010 18:06:07 +0000 (11:06 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 1 Apr 2010 18:06:07 +0000 (11:06 -0700)
commit5d6a945bfdb0873a306f4bc4cc23614e673ae628
tree7dee1e7e6b7394d1a11559b3f3bca973fc92e328
parenta3c7ebb989faa275eff6ba6ea2d44ca47170bcec
kernel - Address excessive stall in pageout during deadlock avoidance

* The pageout daemon uses LK_TIMELOCK to avoid deadlocking on a vnode
  that might be held locked during a pfault, which waits up to 1/10 of
  a second.

  If the vnode has a large number of pageable pages each page may go
  through the timeout.  This can result in the pageout daemon stalling
  for an excessive amount of time.

  Reduce instances of the problem by remembering the last vnode which
  failed its timelock and using LK_NOWAIT for later pages.  A single
  vnode is remembered for now.

Reported-by: Francois Tigeot <ftigeot@wolfpond.org>
sys/vm/vm_pageout.c