diff options
Diffstat (limited to 'static/freebsd/man9/LOCK_PROFILING.9 3.html')
| -rw-r--r-- | static/freebsd/man9/LOCK_PROFILING.9 3.html | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/static/freebsd/man9/LOCK_PROFILING.9 3.html b/static/freebsd/man9/LOCK_PROFILING.9 3.html deleted file mode 100644 index 996a990b..00000000 --- a/static/freebsd/man9/LOCK_PROFILING.9 3.html +++ /dev/null @@ -1,150 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">LOCK_PROFILING(9)</td> - <td class="head-vol">Kernel Developer's Manual</td> - <td class="head-rtitle">LOCK_PROFILING(9)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">LOCK_PROFILING</code> — - <span class="Nd">kernel lock profiling support</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="Cd">options LOCK_PROFILING</code></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Dv">LOCK_PROFILING</code> kernel option adds - support for measuring and reporting lock use and contention statistics. - These statistics are collated by “acquisition point”. - Acquisition points are distinct places in the kernel source code (identified - by source file name and line number) where a lock is acquired.</p> -<p class="Pp">For each acquisition point, the following statistics are - accumulated:</p> -<ul class="Bl-bullet"> - <li>The longest time the lock was ever continuously held after being acquired - at this point.</li> - <li>The total time the lock was held after being acquired at this point.</li> - <li>The total time that threads have spent waiting to acquire the lock.</li> - <li>The total number of non-recursive acquisitions.</li> - <li>The total number of times the lock was already held by another thread when - this point was reached, requiring a spin or a sleep.</li> - <li>The total number of times another thread tried to acquire the lock while - it was held after having been acquired at this point.</li> -</ul> -<p class="Pp">In addition, the average hold time and average wait time are - derived from the total hold time and total wait time respectively and the - number of acquisitions.</p> -<p class="Pp">The <code class="Dv">LOCK_PROFILING</code> kernel option also adds - the following <a class="Xr">sysctl(8)</a> variables to control and monitor - the profiling code:</p> -<dl class="Bl-tag"> - <dt id="debug.lock.prof.enable"><var class="Va">debug.lock.prof.enable</var></dt> - <dd>Enable or disable the lock profiling code. This defaults to 0 (off).</dd> - <dt id="debug.lock.prof.reset"><var class="Va">debug.lock.prof.reset</var></dt> - <dd>Reset the current lock profiling buffers.</dd> - <dt id="debug.lock.prof.stats"><var class="Va">debug.lock.prof.stats</var></dt> - <dd>The actual profiling statistics in plain text. The columns are as follows, - from left to right: - <dl class="Bl-tag"> - <dt id="max"><var class="Va">max</var></dt> - <dd>The longest continuous hold time in microseconds.</dd> - <dt id="wait_max"><var class="Va">wait_max</var></dt> - <dd>The longest continuous wait time in microseconds.</dd> - <dt id="total"><var class="Va">total</var></dt> - <dd>The total (accumulated) hold time in microseconds.</dd> - <dt id="wait_total"><var class="Va">wait_total</var></dt> - <dd>The total (accumulated) wait time in microseconds.</dd> - <dt id="count"><var class="Va">count</var></dt> - <dd>The total number of acquisitions.</dd> - <dt id="avg"><var class="Va">avg</var></dt> - <dd>The average hold time in microseconds, derived from the total hold - time and the number of acquisitions.</dd> - <dt id="wait_avg"><var class="Va">wait_avg</var></dt> - <dd>The average wait time in microseconds, derived from the total wait - time and the number of acquisitions.</dd> - <dt id="cnt_hold"><var class="Va">cnt_hold</var></dt> - <dd>The number of times the lock was held and another thread attempted to - acquire the lock.</dd> - <dt id="cnt_lock"><var class="Va">cnt_lock</var></dt> - <dd>The number of times the lock was already held when this point was - reached.</dd> - <dt id="name"><var class="Va">name</var></dt> - <dd>The name of the acquisition point, derived from the source file name - and line number, followed by the name of the lock in parentheses.</dd> - </dl> - </dd> - <dt id="debug.lock.prof.rejected"><var class="Va">debug.lock.prof.rejected</var></dt> - <dd>The number of acquisition points that were ignored after the table filled - up.</dd> - <dt id="debug.lock.prof.skipspin"><var class="Va">debug.lock.prof.skipspin</var></dt> - <dd>Disable or enable the lock profiling code for the spin locks. This - defaults to 0 (do profiling for the spin locks).</dd> - <dt id="debug.lock.prof.skipcount"><var class="Va">debug.lock.prof.skipcount</var></dt> - <dd>Do sampling approximately every N lock acquisitions.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">sysctl(8)</a>, <a class="Xr">mutex(9)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">Mutex profiling support appeared in <span class="Ux">FreeBSD - 5.0</span>. Generalized lock profiling support appeared in - <span class="Ux">FreeBSD 7.0</span>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> -<p class="Pp">The <code class="Nm">MUTEX_PROFILING</code> code was written by - <span class="An">Eivind Eklund</span> - <<a class="Mt" href="mailto:eivind@FreeBSD.org">eivind@FreeBSD.org</a>>, - <span class="An">Dag-Erling Smørgrav</span> - <<a class="Mt" href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>> and - <span class="An">Robert Watson</span> - <<a class="Mt" href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>>. - The <code class="Nm">LOCK_PROFILING</code> code was written by - <span class="An">Kip Macy</span> - <<a class="Mt" href="mailto:kmacy@FreeBSD.org">kmacy@FreeBSD.org</a>>. - This manual page was written by <span class="An">Dag-Erling - Smørgrav</span> - <<a class="Mt" href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="NOTES"><a class="permalink" href="#NOTES">NOTES</a></h1> -<p class="Pp">The <code class="Dv">LOCK_PROFILING</code> option increases the - size of <var class="Vt">struct lock_object</var>, so a kernel built with - that option will not work with modules built without it.</p> -<p class="Pp">The <code class="Dv">LOCK_PROFILING</code> option also prevents - inlining of the mutex code, which can result in a fairly severe performance - penalty. This is, however, not always the case. - <code class="Dv">LOCK_PROFILING</code> can introduce a substantial - performance overhead that is easily monitorable using other profiling tools, - so combining profiling tools with <code class="Dv">LOCK_PROFILING</code> is - not recommended.</p> -<p class="Pp">Measurements are made and stored in nanoseconds using - <a class="Xr">nanotime(9)</a>, (on architectures without a synchronized TSC) - but are presented in microseconds. This should still be sufficient for the - locks one would be most interested in profiling (those that are held long - and/or acquired often).</p> -<p class="Pp"><code class="Dv">LOCK_PROFILING</code> should generally not be - used in combination with other debugging options, as the results may be - strongly affected by interactions between the features. In particular, - <code class="Dv">LOCK_PROFILING</code> will report higher than normal - <a class="Xr">uma(9)</a> lock contention when run with - <code class="Dv">INVARIANTS</code> due to extra locking that occurs when - <code class="Dv">INVARIANTS</code> is present; likewise, using it in - combination with <code class="Dv">WITNESS</code> will lead to much higher - lock hold times and contention in profiling output.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">March 7, 2012</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
