summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorVisa Hankala <visa@cvs.openbsd.org>2019-02-07 15:11:39 +0000
committerVisa Hankala <visa@cvs.openbsd.org>2019-02-07 15:11:39 +0000
commit02d3802da85b2d3796370f0f12d1abea9bcbd466 (patch)
tree555645e0214e898660e2304b3c630c6ec7851dbb /share
parentee65a484c4e4801840e44792155d9a488b3bccb9 (diff)
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 'share')
-rw-r--r--share/man/man4/options.412
-rw-r--r--share/man/man9/malloc.97
2 files changed, 15 insertions, 4 deletions
diff --git a/share/man/man4/options.4 b/share/man/man4/options.4
index ce991e68141..6c9f58b9935 100644
--- a/share/man/man4/options.4
+++ b/share/man/man4/options.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: options.4,v 1.261 2019/02/06 10:59:49 visa Exp $
+.\" $OpenBSD: options.4,v 1.262 2019/02/07 15:11:38 visa Exp $
.\" $NetBSD: options.4,v 1.21 1997/06/25 03:13:00 thorpej Exp $
.\"
.\" Copyright (c) 1998 Theo de Raadt
@@ -34,7 +34,7 @@
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\"
-.Dd $Mdocdate: February 6 2019 $
+.Dd $Mdocdate: February 7 2019 $
.Dt OPTIONS 4
.Os
.Sh NAME
@@ -141,6 +141,14 @@ See
Maximum number of lock types that are tracked by
.Xr witness 4 .
It defaults to 1536.
+.It Cd option WITNESS_LOCKTRACE
+Enable
+.Xr witness 4
+lock stack trace saving at boot.
+The feature is disabled by default and has to be enabled by setting the
+.Va kern.witness.locktrace
+.Xr sysctl 8
+variable.
.It Cd option WITNESS_WATCH
Enable
.Xr witness 4
diff --git a/share/man/man9/malloc.9 b/share/man/man9/malloc.9
index 0b958b0649b..729b76eec17 100644
--- a/share/man/man9/malloc.9
+++ b/share/man/man9/malloc.9
@@ -1,4 +1,4 @@
-.\" $OpenBSD: malloc.9,v 1.66 2019/01/18 17:52:18 visa Exp $
+.\" $OpenBSD: malloc.9,v 1.67 2019/02/07 15:11:38 visa Exp $
.\" $NetBSD: malloc.9,v 1.2 1996/10/30 05:29:54 lukem Exp $
.\"
.\" Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd $Mdocdate: January 18 2019 $
+.Dd $Mdocdate: February 7 2019 $
.Dt MALLOC 9
.Os
.Sh NAME
@@ -267,6 +267,9 @@ USB general.
USB device driver.
.It Dv M_USBHC
USB host controller.
+.It Dv M_WITNESS
+.Xr witness 4
+memory.
.It Dv M_MEMDESC
Memory range.
.It Dv M_CRYPTO_DATA