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

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Aug 28 11:10:40 PDT 2010


commit 2de4f77e2b4ab23695f2ed9e2917345bc821b229
Author: Matthew Dillon <dillon at 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





More information about the Commits mailing list