cvs commit: src/sys/conf options src/sys/kern kern_mutex.c kern_rwlock.c kern_sx.c kern_thread.c sched_4bsd.c sched_ule.c subr_lock.c src/sys/sys _lock.h lock_profile.h proc.h sx.h

Jeff Roberson jeff at FreeBSD.org
Sat Dec 15 15:13:32 PST 2007


jeff        2007-12-15 23:13:32 UTC

  FreeBSD src repository

  Modified files:
    sys/conf             options 
    sys/kern             kern_mutex.c kern_rwlock.c kern_sx.c 
                         kern_thread.c sched_4bsd.c sched_ule.c 
                         subr_lock.c 
    sys/sys              _lock.h lock_profile.h proc.h sx.h 
  Log:
   - Re-implement lock profiling in such a way that it no longer breaks
     the ABI when enabled.  There is no longer an embedded lock_profile_object
     in each lock.  Instead a list of lock_profile_objects is kept per-thread
     for each lock it may own.  The cnt_hold statistic is now always 0 to
     facilitate this.
   - Support shared locking by tracking individual lock instances and
     statistics in the per-thread per-instance lock_profile_object.
   - Make the lock profiling hash table a per-cpu singly linked list with a
     per-cpu static lock_prof allocator.  This removes the need for an array
     of spinlocks and reduces cache contention between cores.
   - Use a seperate hash for spinlocks and other locks so that only a
     critical_enter() is required and not a spinlock_enter() to modify the
     per-cpu tables.
   - Count time spent spinning in the lock statistics.
   - Remove the LOCK_PROFILE_SHARED option as it is always supported now.
   - Specifically drop and release the scheduler locks in both schedulers
     since we track owners now.
  
  In collaboration with:  Kip Macy
  Sponsored by:   Nokia
  
  Revision  Changes    Path
  1.613     +0 -1      src/sys/conf/options
  1.203     +6 -20     src/sys/kern/kern_mutex.c
  1.33      +7 -24     src/sys/kern/kern_rwlock.c
  1.58      +9 -25     src/sys/kern/kern_sx.c
  1.263     +2 -0      src/sys/kern/kern_thread.c
  1.112     +6 -1      src/sys/kern/sched_4bsd.c
  1.219     +6 -0      src/sys/kern/sched_ule.c
  1.19      +433 -221  src/sys/kern/subr_lock.c
  1.15      +0 -25     src/sys/sys/_lock.h
  1.16      +27 -112   src/sys/sys/lock_profile.h
  1.497     +2 -0      src/sys/sys/proc.h
  1.38      +1 -3      src/sys/sys/sx.h


More information about the cvs-all mailing list