DragonFly BSD
DragonFly commits List (threaded) for 2010-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

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


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 28 Aug 2010 11:09:08 -0700 (PDT)

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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]