看板 DFBSD_commit 關於我們 聯絡資訊
commit 212f39f54bb99e0b059f26faa762e7ff99a6bebf Author: Matthew Dillon <dillon@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