diff options
Diffstat (limited to 'static/freebsd/man4/dtrace_profile.4 3.html')
| -rw-r--r-- | static/freebsd/man4/dtrace_profile.4 3.html | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/static/freebsd/man4/dtrace_profile.4 3.html b/static/freebsd/man4/dtrace_profile.4 3.html deleted file mode 100644 index 05375af3..00000000 --- a/static/freebsd/man4/dtrace_profile.4 3.html +++ /dev/null @@ -1,177 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">DTRACE_PROFILE(4)</td> - <td class="head-vol">Device Drivers Manual</td> - <td class="head-rtitle">DTRACE_PROFILE(4)</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">dtrace_profile</code> — <span class="Nd">a - DTrace provider for firing probes at a given time interval</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<table class="Nm"> - <tr> - <td><code class="Nm">profile<code class="Cm">:::profile-</code><var class="Ar">rate</var>[<var class="Ar">unit</var>]</code></td> - <td></td> - </tr> -</table> -<br/> -<table class="Nm"> - <tr> - <td><code class="Nm">profile<code class="Cm">:::tick-</code><var class="Ar">rate</var>[<var class="Ar">unit</var>]</code></td> - <td></td> - </tr> -</table> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <code class="Nm">profile</code> provider implements three - special probes related to the life cycle of the DTrace program itself.</p> -<section class="Ss"> -<h2 class="Ss" id="Probes"><a class="permalink" href="#Probes">Probes</a></h2> -<p class="Pp">The - <code class="Nm">profile</code><code class="Cm">:::profile</code> probes - fire on all CPUs and are suitable for measuring the whole system - periodically.</p> -<p class="Pp">The <code class="Nm">profile</code><code class="Cm">:::tick</code> - probes fire on a single CPU, potentially a different one every time. They - are useful, e.g., for printing partial results periodically.</p> -</section> -<section class="Ss"> -<h2 class="Ss" id="Rate_and_Time_Units"><a class="permalink" href="#Rate_and_Time_Units">Rate - and Time Units</a></h2> -<p class="Pp">The <code class="Nm">profile</code> provider probes will fire at - the specified <var class="Ar">rate</var>.</p> -<p class="Pp">The default unit is <code class="Cm">hz</code>. The - <code class="Nm">profile</code> provider supports the following time - units:</p> -<table class="Bl-column Bd-indent"> - <tr id="Time"> - <td><a class="permalink" href="#Time"><b class="Sy">Time Unit</b></a></td> - <td><a class="permalink" href="#Definition"><b class="Sy" id="Definition">Definition</b></a></td> - </tr> - <tr id="ns"> - <td><a class="permalink" href="#ns"><code class="Cm">ns</code></a>, - <code class="Cm">nsec</code></td> - <td>nanoseconds</td> - </tr> - <tr id="us"> - <td><a class="permalink" href="#us"><code class="Cm">us</code></a>, - <code class="Cm">usec</code></td> - <td>microseconds</td> - </tr> - <tr id="ms"> - <td><a class="permalink" href="#ms"><code class="Cm">ms</code></a>, - <code class="Cm">msec</code></td> - <td>milliseconds</td> - </tr> - <tr id="s"> - <td><a class="permalink" href="#s"><code class="Cm">s</code></a>, - <code class="Cm">sec</code></td> - <td>seconds</td> - </tr> - <tr id="m"> - <td><a class="permalink" href="#m"><code class="Cm">m</code></a>, - <code class="Cm">min</code></td> - <td>minutes</td> - </tr> - <tr id="h"> - <td><a class="permalink" href="#h"><code class="Cm">h</code></a>, - <code class="Cm">hour</code></td> - <td>hours</td> - </tr> - <tr id="d"> - <td><a class="permalink" href="#d"><code class="Cm">d</code></a>, - <code class="Cm">day</code></td> - <td>days</td> - </tr> - <tr id="hz"> - <td><a class="permalink" href="#hz"><code class="Cm">hz</code></a></td> - <td>Hertz (frequency per second)</td> - </tr> -</table> -</section> -<section class="Ss"> -<h2 class="Ss" id="Probe_Arguments"><a class="permalink" href="#Probe_Arguments">Probe - Arguments</a></h2> -<p class="Pp">The arguments of the <code class="Nm">profile</code> provider - probes are:</p> -<dl class="Bl-tag"> - <dt id="arg0"><var class="Va">arg0</var></dt> - <dd>The PC (program counter) in the kernel when the probe triggered, or 0 if - the process was not in the kernel at that time.</dd> - <dt id="arg1"><var class="Va">arg1</var></dt> - <dd>The PC in the user process when the probe triggered, or 0 if the process - was in the kernel when the probe triggered.</dd> -</dl> -<p class="Pp">Use arguments <var class="Va">arg0</var> and - <var class="Va">arg1</var> to tell if the <code class="Nm">profile</code> - provider probe fired in the kernel or in the userspace context.</p> -</section> -</section> -<section class="Sh"> -<h1 class="Sh" id="IMPLEMENTATION_NOTES"><a class="permalink" href="#IMPLEMENTATION_NOTES">IMPLEMENTATION - NOTES</a></h1> -<p class="Pp">The <a class="Xr">sysctl(8)</a> variable - <var class="Va">kern.dtrace.profile.aframes</var> controls the number of - skipped artificial frames for the <code class="Nm">profile</code> - provider.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1> -<section class="Ss"> -<h2 class="Ss" id="Example_1_:_Profiling_On-CPU_Kernel_Stack_Traces"><a class="permalink" href="#Example_1_:_Profiling_On-CPU_Kernel_Stack_Traces">Example - 1: Profiling On-CPU Kernel Stack Traces</a></h2> -<p class="Pp">The following DTrace one-liner uses the - <code class="Nm">profile</code> provider to collect stack traces over 60 - seconds.</p> -<div class="Bd Pp Bd-indent Li"> -<pre>dtrace -x stackframes=100 -n 'profile-197 /arg0/ {@[stack()] = count();} tick-60s {exit(0);}</pre> -</div> -<p class="Pp">The system is profiled at the 197 Hz to avoid sampling in lockstep - with other periodic activities. This unnatural frequency minimizes the - chance of overlapping with other events.</p> -<p class="Pp">Option <code class="Fl">-x</code> - <code class="Cm">stackframes=100</code> increases the maximum number of - kernel stack frames to unwind during <code class="Fn">stack</code>().</p> -<p class="Pp">Checking if <var class="Ar">arg0</var> is not zero makes sure that - profiling happens when the program is in the kernel context.</p> -<p class="Pp">Refer to - <a class="Lk" href="https://www.brendangregg.com/flamegraphs.html">https://www.brendangregg.com/flamegraphs.html</a> - to learn about generating flame graphs from the obtained stack traces.</p> -</section> -</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">dtrace(1)</a>, <a class="Xr">tracing(7)</a></p> -<p class="Pp"><cite class="Rs"><i class="RsB">The illumos Dynamic Tracing - Guide</i>, - <a class="RsU" href="https://www.illumos.org/books/dtrace/chp-profile.html">https://www.illumos.org/books/dtrace/chp-profile.html</a>, - <span class="RsD">2008</span>, <span class="RsO">Chapter profile - Provider</span>.</cite></p> -<p class="Pp"><cite class="Rs"><span class="RsA">Brendan Gregg</span> and - <span class="RsA">Jim Mauro</span>, <i class="RsB">DTrace: Dynamic Tracing - in Oracle Solaris, Mac OS X and FreeBSD</i>, <i class="RsI">Prentice - Hall</i>, - <a class="RsU" href="https://www.brendangregg.com/dtracebook/">https://www.brendangregg.com/dtracebook/</a>, - <span class="RsP">pp. 24–25</span>, - <span class="RsD">2011</span>.</cite></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> -<p class="Pp">This manual page was written by <span class="An">Mateusz - Piotrowski</span> - <<a class="Mt" href="mailto:0mp@FreeBSD.org">0mp@FreeBSD.org</a>>.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">July 14, 2025</td> - <td class="foot-os">FreeBSD 15.0</td> - </tr> -</table> |
