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