git: kernel - Fix indefinite wait buffer during heavy swapping

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Sep 5 12:36:42 PDT 2016


commit 10c39de26c1356d088f2dbaa5809e1289062641d
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Sep 5 12:33:42 2016 -0700

    kernel - Fix indefinite wait buffer during heavy swapping
    
    * Fix a deadlock which can occur between CAM and the VM system due to
      a bug in uiomove_nofault() when called via vop_helper_read_shortcut().
    
      If the backing store is swapped out, vm_fault()/vm_fault_object() attempts
      to page the data in instead of telling uiomove_nofault() to give up.
      This can result in a deadlock against the underlying vm_page's in the
      file that might already be undergoing I/O.
    
    * Probably also reported by other people over the years, but could never
      track it down until now.
    
    Reported-by: Studbolt

Summary of changes:
 sys/vm/vm_fault.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/10c39de26c1356d088f2dbaa5809e1289062641d


-- 
DragonFly BSD source repository


More information about the Commits mailing list