DragonFly BSD
DragonFly commits List (threaded) for 2010-04
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Address excessive stall in pageout during deadlock avoidance


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 1 Apr 2010 11:08:57 -0700 (PDT)

commit 5d6a945bfdb0873a306f4bc4cc23614e673ae628
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Apr 1 11:06:07 2010 -0700

    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>

Summary of changes:
 sys/vm/vm_pageout.c |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5d6a945bfdb0873a306f4bc4cc23614e673ae628


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]