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-src
mailing list