git: kernel - Fix MP races in recent vm_object work

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Jun 10 00:37:13 PDT 2011


commit 212f39f54bb99e0b059f26faa762e7ff99a6bebf
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Jun 10 00:32:22 2011 -0700

    kernel - Fix MP races in recent vm_object work
    
    * lwkt_token_swap() needs a critical section to ensure that an interrupt
      does not catch it mid-swap.
    
    * Adjust vm_object_terminate() and vm_object_vnterminate() mechanics to
      require that the object be locked and to eat the lock.
    
    * Use vm_object_hold/drop in vm_map_copy_entry() (object must be locked
      upon call to vm_object_collapse()).
    
    * Acquire object locks in various places and swap the token order as
      needed to chain locks in various loops.
    
    * Shift some code around in vm_object.c

Summary of changes:
 sys/kern/lwkt_token.c |    4 +
 sys/kern/vfs_subr.c   |   13 ++-
 sys/vm/vm_map.c       |    8 +-
 sys/vm/vm_object.c    |  375 +++++++++++++++++++++++++++++++------------------
 4 files changed, 257 insertions(+), 143 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/212f39f54bb99e0b059f26faa762e7ff99a6bebf


-- 
DragonFly BSD source repository





More information about the Commits mailing list