summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/dtrace_profile.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/dtrace_profile.4 3.html')
-rw-r--r--static/freebsd/man4/dtrace_profile.4 3.html177
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> &#x2014; <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&#x2013;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>
- &lt;<a class="Mt" href="mailto:0mp@FreeBSD.org">0mp@FreeBSD.org</a>&gt;.</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>