git: kernel - Add vmobj_token, misc vm-related tokenization

看板DFBSD_commit作者時間15年前 (2010/08/29 02:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 2de4f77e2b4ab23695f2ed9e2917345bc821b229 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sat Aug 28 10:26:04 2010 -0700 kernel - Add vmobj_token, misc vm-related tokenization * Add vmobj_token to protect vm_object_list and vm_object->ref_count and related functions. Note: coalesce and collapse require both vm_token and vmobj_token, and vmspace_fork() requires a bunch of tokens. * Remove miscellanious mplocks and critical sections that are no longer needed. * Correct potential sysinfo kernel data visibilty issue. * Optimize some potentially recursive vm_token/vmobj_token situations by adding *_locked() procedure variants. To avoid blowing out the token stack. * Remove unnecessary get_mplock() calls in vm_zone.c * Bump gd_intr_nesting_level in the IPI processing core and assert that it is zero in the gettoken core. Hard interrupts (vs interrupt threads) are not allowed to acquire tokens for obvious reasons. Summary of changes: sys/cpu/i386/misc/lwbuf.c | 3 - sys/dev/virtual/net/if_vke.c | 2 +- .../linux/i386/linprocfs/linprocfs_misc.c | 3 + sys/emulation/linux/linux_misc.c | 8 +- sys/kern/kern_slaballoc.c | 8 +- sys/kern/lwkt_ipiq.c | 3 + sys/kern/lwkt_token.c | 3 + sys/kern/vfs_subr.c | 12 +- sys/sys/thread.h | 1 + sys/vm/vm_kern.c | 6 +- sys/vm/vm_map.c | 69 ++++++--- sys/vm/vm_meter.c | 9 +- sys/vm/vm_object.c | 158 ++++++++++++-------- sys/vm/vm_object.h | 12 ++- sys/vm/vm_swapcache.c | 8 + sys/vm/vm_zeroidle.c | 1 - sys/vm/vm_zone.c | 2 - sys/vm/vnode_pager.c | 21 ++- 18 files changed, 216 insertions(+), 113 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/2de4f77e2b4ab23695f2ed9e2917345bc821b229 -- DragonFly BSD source repository
文章代碼(AID): #1CULObzX (DFBSD_commit)