diff options
Diffstat (limited to 'static/freebsd/man9/ktr.9 4.html')
| -rw-r--r-- | static/freebsd/man9/ktr.9 4.html | 182 |
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> — - <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 - <<a class="In">sys/param.h</a>></code> - <br/> - <code class="In">#include <<a class="In">sys/ktr.h</a>></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"><<a class="In">sys/ktr_class.h</a>></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, "mi_switch: old proc %p (pid %d)", p, p->p_pid); - ... - cpu_switch(); - ... - CTR3(KTR_PROC, "mi_switch: new proc %p (pid %d)", p, p->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> |
