cvs commit: src/sys/kern subr_witness.c
truckman at FreeBSD.org
Wed Jan 25 18:33:37 PST 2006
truckman 2006-01-26 02:33:36 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_5)
MFC subr_witness.c 1.198 and 1.200.
Original commit messages:
Track all lock relationships instead of pruning direct relationships
if an indirect relationship exists (keep both A->B->C and A->C).
This allows witness_checkorder() to use isitmychild() instead of
the much more expensive isitmydescendant() to check for valid lock
Don't do an expensive tree walk to update the w_level values when
the tree is updated. Only update the w_level values when using the
debugger to display the tree.
Nuke the experimental "witness_watch > 1" mode that only compared
w_level for the two locks. This information is no longer maintained
at run time, and the use of isitmychild() in witness_checkorder
should bring performance close enough to the acceptable level that
this hack is not needed.
Report witness data structure allocation statistics under the
Reviewed by: jhb
MFC after: 30 days
Relocate witness_levelall(), witness_leveldescendents(), and
witness_displaydescendants() so that they are protected by
"#ifdef DDB/#endif" to unbreak kernels not using "option DDB".
MFC after: 3 weeks
Revision Changes Path
126.96.36.199 +117 -157 src/sys/kern/subr_witness.c
More information about the cvs-all