diff options
author | 2019-02-07 15:11:38 +0000 | |
---|---|---|
committer | 2019-02-07 15:11:38 +0000 | |
commit | eb34598c0a0d10289c8cec9201e26fb543c8a989 (patch) | |
tree | 323d6b184335a1077d5934d55cb9169fcd13b7bf /lib/libssl/tls13_client.c | |
parent | Consistently use m_freem(9). This fixes possible leaks in a few (diff) | |
download | wireguard-openbsd-eb34598c0a0d10289c8cec9201e26fb543c8a989.tar.xz wireguard-openbsd-eb34598c0a0d10289c8cec9201e26fb543c8a989.zip |
Add lock stack trace saving for witness(4).
This lets witness(4) save a stack trace on each lock acquisition.
The saved traces can be viewed in ddb(4) when showing the currently
held locks, which may help when debugging incorrect locking.
Sample output:
ddb{0}> show all locks
Process 63836 (rm) thread 0xffff8000221e52c8 (435004)
exclusive rrwlock inode r = 0 (0xfffffd8119a092c0) locked @ /usr/src/sys/ufs/ufs/ufs_vnops.c:1547
#0 witness_lock+0x419
#1 _rw_enter+0x2bb
#2 _rrw_enter+0x42
#3 VOP_LOCK+0x3f
#4 vn_lock+0x36
#5 vfs_lookup+0xa1
#6 namei+0x2b3
#7 dounlinkat+0x85
#8 syscall+0x338
#9 Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 1 (0xffffffff81e6a5f0) locked @ /usr/src/sys/arch/amd64/amd64/intr.c:525
#0 witness_lock+0x419
#1 syscall+0x2b6
#2 Xsyscall+0x128
The saving adds overhead, so it is not enabled by default. It can be
taken into use by setting sysctl kern.witness.locktrace=1 at runtime
or by defining WITNESS_LOCKTRACE in the kernel configuration.
Feedback and OK anton@
Diffstat (limited to 'lib/libssl/tls13_client.c')
0 files changed, 0 insertions, 0 deletions