diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man8/lockstat.8 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man8/lockstat.8')
| -rw-r--r-- | static/netbsd/man8/lockstat.8 | 188 |
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 . |
