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

git: kernel - Fix deadlock w/recent vm_map work


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 11 Aug 2011 14:40:22 -0700 (PDT)

commit 625a293762660fd6f8474c36683a1aeed85b71ba
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Aug 11 14:38:09 2011 -0700

    kernel - Fix deadlock w/recent vm_map work
    
    * Fix a deadlock where a vm_page is being held PG_BUSY throgh a vm_map
      relocking operation.  This can deadlock against the attempt to busy
      a vm_page while holding a vm_map lock.
    
    * The solution is a bit of a hack.  Currently allow the relock attempt to
      timeout and force a retry of the VM fault, which unlocks and relocks
      everything.  This is not the best solution but the problem occurs
      fairly rarely so for now it should be an acceptable workaround.
    
    Reported-by: ftigeot, Studbolt

Summary of changes:
 sys/vm/vm_fault.c |   22 +++++++++++++++++-----
 sys/vm/vm_map.c   |    2 +-
 sys/vm/vm_map.h   |   12 ++++++++++++
 3 files changed, 30 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/625a293762660fd6f8474c36683a1aeed85b71ba


-- 
DragonFly BSD source repository



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