cvs commit: src/sys/kern kern_sx.c subr_lock.c subr_witness.c src/sys/sys _lock.h _lockmgr.h _mutex.h _rwlock.h _sx.h lock.h lockmgr.h mutex.h rwlock.h

Attilio Rao attilio at FreeBSD.org
Thu May 15 20:10:07 UTC 2008


attilio     2008-05-15 20:10:07 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_sx.c subr_lock.c subr_witness.c 
    sys/sys              _lock.h _lockmgr.h _mutex.h _rwlock.h 
                         _sx.h lock.h lockmgr.h mutex.h rwlock.h 
  Log:
  - Embed the recursion counter for any locking primitive directly in the
    lock_object, using an unified field called lo_data.
  - Replace lo_type usage with the w_name usage and at init time pass the
    lock "type" directly to witness_init() from the parent lock init
    function.  Handle delayed initialization before than
    witness_initialize() is called through the witness_pendhelp structure.
  - Axe out LO_ENROLLPEND as it is not really needed.  The case where the
    mutex init delayed wants to be destroyed can't happen because
    witness_destroy() checks for witness_cold and panic in case.
  - In enroll(), if we cannot allocate a new object from the freelist,
    notify that to userspace through a printf().
  - Modify the depart function in order to return nothing as in the current
    CVS version it always returns true and adjust callers accordingly.
  - Fix the witness_addgraph() argument name prototype.
  - Remove unuseful code from itismychild().
  
  This commit leads to a shrinked struct lock_object and so smaller locks,
  in particular on amd64 where 2 uintptr_t (16 bytes per-primitive) are
  gained.
  
  Reviewed by:    jhb
  
  Revision  Changes    Path
  1.60      +1 -0      src/sys/kern/kern_sx.c
  1.23      +1 -4      src/sys/kern/subr_lock.c
  1.249     +41 -64    src/sys/kern/subr_witness.c
  1.16      +2 -5      src/sys/sys/_lock.h
  1.2       +0 -1      src/sys/sys/_lockmgr.h
  1.14      +0 -1      src/sys/sys/_mutex.h
  1.5       +0 -1      src/sys/sys/_rwlock.h
  1.2       +0 -1      src/sys/sys/_sx.h
  1.73      +4 -5      src/sys/sys/lock.h
  1.70      +1 -0      src/sys/sys/lockmgr.h
  1.103     +2 -0      src/sys/sys/mutex.h
  1.19      +2 -0      src/sys/sys/rwlock.h


More information about the cvs-all mailing list