summaryrefslogtreecommitdiff
path: root/static/netbsd/man8/lockstat.8
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man8/lockstat.8
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man8/lockstat.8')
-rw-r--r--static/netbsd/man8/lockstat.8188
1 files changed, 188 insertions, 0 deletions
diff --git a/static/netbsd/man8/lockstat.8 b/static/netbsd/man8/lockstat.8
new file mode 100644
index 00000000..a714a337
--- /dev/null
+++ b/static/netbsd/man8/lockstat.8
@@ -0,0 +1,188 @@
+.\" $NetBSD: lockstat.8,v 1.11 2017/07/03 21:35:31 wiz Exp $
+.\"
+.\" Copyright (c) 2006, 2007, 2009 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Andrew Doran.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd March 6, 2013
+.Dt LOCKSTAT 8
+.Os
+.Sh NAME
+.Nm lockstat
+.Nd display kernel locking statistics
+.Sh SYNOPSIS
+.Nm
+.Op Fl cdeflMmpstx
+.Op Fl b Ar nbuf
+.Op Fl E Ar event
+.Op Fl F Ar func
+.Op Fl L Ar lock
+.Op Fl N Ar nlist
+.Op Fl o Ar file
+.Op Fl T Ar type
+.Ar command ...
+.Sh DESCRIPTION
+The
+.Nm
+command enables system wide tracing of kernel lock events, executes
+the specified command, and when finished reports statistics to the user.
+.Pp
+Tracing may be ended early by sending
+.Dv SIGINT
+(Ctrl-C) to the process being executed by lockstat.
+.Pp
+The
+.Nm lockstat
+pseudo-device
+driver must be present in the kernel, and the
+.Nm
+command may only be used by the root user.
+.Pp
+The options are as follows:
+.Bl -tag -width wellhello
+.It Fl b Ar nbuf
+Adjust the number of trace buffers allocated by the kernel to
+.Ar nbuf .
+.It Fl c
+Report percentage of total events by count, and sort the output by number
+of events.
+The default is to key on event timings.
+.It Fl d
+Disable lockstat.
+This is useful when a program crashed leaving the lockstat kernel driver
+enabled.
+.It Fl E Ar event
+Limit tracing to one type of event.
+Use the
+.Fl e
+option to list valid events.
+.It Fl e
+List valid event types for the
+.Fl E
+option and exit.
+.It Fl F Ar func
+Limit tracing to locking operations performed within the specified function.
+.Ar func
+must be the name of a valid function in the kernel.
+.It Fl f
+Trace only by calling functions; do not report on individual locks.
+.It Fl L Ar lock
+Limit tracing to one lock.
+.Ar lock
+may either be the name of a lock object in the kernel, or a kernel virtual
+address.
+.It Fl l
+Trace only by lock; do not report on calling functions.
+.It Fl M
+Merge lock addresses within unique objects.
+.It Fl m
+Merge call sites within unique functions.
+.It Fl N Ar nlist
+Extract symbol information from the
+.Ar nlist
+file.
+.It Fl o Ar file
+Send output to the file named by
+.Ar file ,
+instead of the standard output (the default).
+.It Fl p
+Show the average number of events and time spent per CPU.
+The default is to show the total values.
+May be used in conjunction with the
+.Fl s
+option.
+.It Fl s
+Show the average number of events per second, and the average time spent per
+second.
+The default is to show the total values.
+.It Fl T Ar type
+Limit tracing to one type of lock.
+Use the
+.Fl t
+option to list valid lock types.
+.It Fl t
+List valid lock types for the
+.Fl T
+option and exit.
+.It Fl x
+Summarize events, and do not report on lock types.
+.El
+.Sh FILES
+.Bl -tag -width /dev/lockstat -compact
+.It Pa /dev/lockstat
+.Nm
+control device
+.It Pa /dev/ksyms
+namelist
+.El
+.Sh EXAMPLES
+.Bd -literal
+# lockstat -L uvm_pageqlock sleep 10
+Elapsed time: 10.01 seconds.
+
+-- Adaptive mutex spin
+
+Total% Count Time/ms Lock Caller
+------ ------- --------- ---------------------- ------------------------------
+100.00 1281 0.78 uvm_pageqlock <all>
+ 39.81 385 0.31 uvm_pageqlock uvm_fault_internal+11cc
+ 30.98 358 0.24 uvm_pageqlock uvm_fault_internal+bb1
+ 28.06 522 0.22 uvm_pageqlock uvm_anfree+132
+ 0.51 5 0.00 uvm_pageqlock ubc_fault+28f
+ 0.20 4 0.00 uvm_pageqlock uvm_fault_internal+12b6
+ 0.18 2 0.00 uvm_pageqlock uao_detach_locked+58
+ 0.11 2 0.00 uvm_pageqlock uvm_fault_internal+7d5
+ 0.08 2 0.00 uvm_pageqlock ufs_balloc_range+160
+ 0.07 1 0.00 uvm_pageqlock uvm_fault_internal+107b
+.Ed
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "lockstat: incompatible lockstat interface version"
+.Pp
+The kernel device driver does not match the version of the
+.Nm
+command.
+.It "lockstat: overflowed available kernel trace buffers"
+.Pp
+Increase the number of buffers using the
+.Fl b
+option.
+.It "lockstat: ioctl: Invalid argument"
+.Pp
+The number of trace buffers is outside the minimum and maximum
+bounds set by the kernel.
+.El
+.Sh SEE ALSO
+.Xr ps 1 ,
+.Xr systat 1 ,
+.Xr vmstat 1 ,
+.Xr iostat 8 ,
+.Xr pstat 8
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Nx 4.0 .