summaryrefslogtreecommitdiff
path: root/static/freebsd/man9/ktr.9 4.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man9/ktr.9 4.html')
-rw-r--r--static/freebsd/man9/ktr.9 4.html182
1 files changed, 0 insertions, 182 deletions
diff --git a/static/freebsd/man9/ktr.9 4.html b/static/freebsd/man9/ktr.9 4.html
deleted file mode 100644
index 1863f4fd..00000000
--- a/static/freebsd/man9/ktr.9 4.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<table class="head">
- <tr>
- <td class="head-ltitle">KTR(9)</td>
- <td class="head-vol">Kernel Developer's Manual</td>
- <td class="head-rtitle">KTR(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">CTR0</code>, <code class="Nm">CTR1</code>,
- <code class="Nm">CTR2</code>, <code class="Nm">CTR3</code>,
- <code class="Nm">CTR4</code>, <code class="Nm">CTR5</code> &#x2014;
- <span class="Nd">kernel tracing facility</span></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
-<p class="Pp"><code class="In">#include
- &lt;<a class="In">sys/param.h</a>&gt;</code>
- <br/>
- <code class="In">#include &lt;<a class="In">sys/ktr.h</a>&gt;</code></p>
-<p class="Pp"><var class="Vt">extern int ktr_cpumask</var>;
- <br/>
- <var class="Vt">extern int ktr_entries</var>;
- <br/>
- <var class="Vt">extern int ktr_extend</var>;
- <br/>
- <var class="Vt">extern int ktr_mask</var>;
- <br/>
- <var class="Vt">extern int ktr_verbose</var>;
- <br/>
- <var class="Vt">extern struct ktr_entry ktr_buf[]</var>;</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">...</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR0</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char
- *format</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR1</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR2</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>,
- <var class="Fa" style="white-space: nowrap;">arg2</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR3</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>,
- <var class="Fa" style="white-space: nowrap;">arg2</var>,
- <var class="Fa" style="white-space: nowrap;">arg3</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR4</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>,
- <var class="Fa" style="white-space: nowrap;">arg2</var>,
- <var class="Fa" style="white-space: nowrap;">arg3</var>,
- <var class="Fa" style="white-space: nowrap;">arg4</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR5</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>,
- <var class="Fa" style="white-space: nowrap;">arg2</var>,
- <var class="Fa" style="white-space: nowrap;">arg3</var>,
- <var class="Fa" style="white-space: nowrap;">arg4</var>,
- <var class="Fa" style="white-space: nowrap;">arg5</var>);</p>
-<p class="Pp"><var class="Ft">void</var>
- <br/>
- <code class="Fn">CTR6</code>(<var class="Fa" style="white-space: nowrap;">u_int
- mask</var>, <var class="Fa" style="white-space: nowrap;">char *format</var>,
- <var class="Fa" style="white-space: nowrap;">arg1</var>,
- <var class="Fa" style="white-space: nowrap;">arg2</var>,
- <var class="Fa" style="white-space: nowrap;">arg3</var>,
- <var class="Fa" style="white-space: nowrap;">arg4</var>,
- <var class="Fa" style="white-space: nowrap;">arg5</var>,
- <var class="Fa" style="white-space: nowrap;">arg6</var>);</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
-<p class="Pp">KTR provides a circular buffer of events that can be logged in a
- <a class="Xr">printf(9)</a> style fashion. These events can then be dumped
- with <a class="Xr">ddb(4)</a>, <a class="Xr">gdb(1)</a>
- (<span class="Pa">ports/devel/gdb</span>) or
- <a class="Xr">ktrdump(8)</a>.</p>
-<p class="Pp">Events are created and logged in the kernel via the
- <code class="Dv">CTR</code> and
- <code class="Dv">CTR</code><var class="Ar">x</var> macros. The first
- parameter is a mask of event types (<code class="Dv">KTR_*</code>) defined
- in <code class="In">&lt;<a class="In">sys/ktr_class.h</a>&gt;</code>. The
- event will be logged only if any of the event types specified in
- <var class="Fa">mask</var> are enabled in the global event mask stored in
- <var class="Va">ktr_mask</var>. The <var class="Fa">format</var> argument is
- a <a class="Xr">printf(9)</a> style format string used to build the text of
- the event log message. Following the <var class="Fa">format</var> string are
- zero to six arguments referenced by <var class="Fa">format</var>. Each event
- is logged with a file name and source line number of the originating CTR
- call, and a timestamp in addition to the log message.</p>
-<p class="Pp">The event is stored in the circular buffer with supplied arguments
- as is, and formatting is done at the dump time. Do not use pointers to the
- objects with limited lifetime, for instance, strings, because the pointer
- may become invalid when buffer is printed.</p>
-<p class="Pp">The <code class="Dv">CTR</code><var class="Ar">x</var> macros
- differ only in the number of arguments each one takes, as indicated by its
- name.</p>
-<p class="Pp">The <var class="Va">ktr_entries</var> variable contains the number
- of entries in the <var class="Va">ktr_buf</var> array. These variables are
- mostly useful for post-mortem crash dump tools to locate the base of the
- circular trace buffer and its length.</p>
-<p class="Pp">The <var class="Va">ktr_mask</var> variable contains the run time
- mask of events to log.</p>
-<p class="Pp">The CPU event mask is stored in the
- <var class="Va">ktr_cpumask</var> variable.</p>
-<p class="Pp">The <var class="Va">ktr_verbose</var> variable stores the verbose
- flag that controls whether events are logged to the console in addition to
- the event buffer.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
-<p class="Pp">This example demonstrates the use of tracepoints at the
- <code class="Dv">KTR_PROC</code> logging level.</p>
-<div class="Bd Pp Li">
-<pre>void
-mi_switch()
-{
- ...
- /*
- * Pick a new current process and record its start time.
- */
- ...
- CTR3(KTR_PROC, &quot;mi_switch: old proc %p (pid %d)&quot;, p, p-&gt;p_pid);
- ...
- cpu_switch();
- ...
- CTR3(KTR_PROC, &quot;mi_switch: new proc %p (pid %d)&quot;, p, p-&gt;p_pid);
- ...
-}</pre>
-</div>
-</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">ktr(4)</a>, <a class="Xr">ktrdump(8)</a></p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
-<p class="Pp">The KTR kernel tracing facility first appeared in
- <span class="Ux">BSD/OS 3.0</span> and was imported into
- <span class="Ux">FreeBSD 5.0</span>.</p>
-<p class="Pp">The <code class="Fn">CTR</code>() macro accepting a variable
- number of arguments first appeared in <span class="Ux">FreeBSD
- 14.0</span>.</p>
-</section>
-<section class="Sh">
-<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
-<p class="Pp">Currently there is one global buffer shared among all CPUs. It
- might be profitable at some point in time to use per-CPU buffers instead so
- that if one CPU halts or starts spinning, then the log messages it emitted
- just prior to halting or spinning will not be drowned out by events from the
- other CPUs.</p>
-<p class="Pp">The arguments given in <code class="Fn">CTRx</code>() macros are
- stored as <var class="Vt">u_long</var>, so do not pass arguments larger than
- size of an <var class="Vt">u_long</var> type. For example passing 64bit
- arguments on 32bit architectures will give incorrect results.</p>
-</section>
-</div>
-<table class="foot">
- <tr>
- <td class="foot-date">April 12, 2022</td>
- <td class="foot-os">FreeBSD 15.0</td>
- </tr>
-</table>