git: kernel - Fix MP races in recent vm_object work

Matthew Dillon dillon at
Fri Jun 10 00:37:13 PDT 2011

commit 212f39f54bb99e0b059f26faa762e7ff99a6bebf
Author: Matthew Dillon <dillon at>
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(-)

DragonFly BSD source repository

More information about the Commits mailing list