diff options
Diffstat (limited to 'static/freebsd/man4/tslog.4 3.html')
| -rw-r--r-- | static/freebsd/man4/tslog.4 3.html | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/static/freebsd/man4/tslog.4 3.html b/static/freebsd/man4/tslog.4 3.html new file mode 100644 index 00000000..71931c3b --- /dev/null +++ b/static/freebsd/man4/tslog.4 3.html @@ -0,0 +1,116 @@ +<table class="head"> + <tr> + <td class="head-ltitle">TSLOG(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">TSLOG(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">tslog</code> — <span class="Nd">Boot-time + event tracing facility</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To compile this boot-time event tracing facility into the kernel, + place the following line in the kernel configuration file:</p> +<div class="Bd Pp Bd-indent"><code class="Cd">option TSLOG</code></div> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp"><code class="Nm">tslog</code> is a boot-time event tracing + facility. It is suitable for tracing recursive events based on function + entries and exits. Its purpose is to ease pinpointing and reducing the + overall <span class="Ux">FreeBSD</span> boot time by generating detailed + timing information.</p> +<p class="Pp"><code class="Nm">tslog</code> is able to trace the boot loader, + kernel initialization, and userland processes.</p> +<p class="Pp">In userland, it records the following details for each process + ID:</p> +<ul class="Bl-dash"> + <li>The timestamp of the <a class="Xr">fork(2)</a> which creates the given + process ID and the parent process ID.</li> + <li>The path passed to <a class="Xr">execve(2)</a>, if any.</li> + <li>The first path resolved by <a class="Xr">namei(9)</a>, if any.</li> + <li>The timestamp of the <a class="Xr">exit(3)</a> which terminates the + process.</li> +</ul> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYSCTL_VARIABLES"><a class="permalink" href="#SYSCTL_VARIABLES">SYSCTL + VARIABLES</a></h1> +<p class="Pp">The following <a class="Xr">sysctl(8)</a> variables are + available:</p> +<dl class="Bl-tag"> + <dt id="debug.tslog"><var class="Va">debug.tslog</var></dt> + <dd>Dump the <code class="Nm">tslog</code> buffer of recorded loader and + kernel event timestamps.</dd> + <dt id="debug.tslog_user"><var class="Va">debug.tslog_user</var></dt> + <dd>Dump the <code class="Nm">tslog</code> buffer of recorded userland event + timestamps.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="FLAMEGRAPHS"><a class="permalink" href="#FLAMEGRAPHS">FLAMEGRAPHS</a></h1> +<p class="Pp">The <code class="Nm">tslog</code> buffer dumps can be used to + generate flamegraphs of the <span class="Ux">FreeBSD</span> boot process for + visual analysis. See + <a class="Lk" href="https://github.com/cperciva/freebsd-boot-profiling">https://github.com/cperciva/freebsd-boot-profiling</a> + for more information.</p> +</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">boottrace(4)</a>, + <a class="Xr">ktr(4)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp"><code class="Nm">tslog</code> first appeared in + <span class="Ux">FreeBSD 12.0</span>. Support for tracing boot loaders and + userland process was added in <span class="Ux">FreeBSD 13.2</span>.</p> +<section class="Ss"> +<h2 class="Ss" id="TSLOG_vs._Boottrace"><a class="permalink" href="#TSLOG_vs._Boottrace">TSLOG + vs. Boottrace</a></h2> +<p class="Pp"><code class="Nm">tslog</code> is oriented towards system + developers while <a class="Xr">boottrace(4)</a> is meant to be easy to use + by system administrators. Both facilities provide an overview of timing and + resource usage of the boot process.</p> +</section> +<section class="Ss"> +<h2 class="Ss" id="TSLOG_vs._DTrace"><a class="permalink" href="#TSLOG_vs._DTrace">TSLOG + vs. DTrace</a></h2> +<p class="Pp"><a class="Xr">dtrace(1)</a> is not always the right tool for + profiling early kernel initialization. The reason is it requires some kernel + subroutines which are not yet available early in the boot process, e.g.: + traps, memory allocation, or thread scheduling. + <code class="Nm">tslog</code> depends on fewer kernel subroutines than + <a class="Xr">dtrace(1)</a> and because of that can trace early kernel + initialization.</p> +</section> +<section class="Ss"> +<h2 class="Ss" id="TSLOG_vs._KTR"><a class="permalink" href="#TSLOG_vs._KTR">TSLOG + vs. KTR</a></h2> +<p class="Pp"><a class="Xr">ktr(4)</a> has a couple of limitations which prevent + it from being able to run at the start of the boot process. In contrast, + <code class="Nm">tslog</code> is designed for logging timestamped events for + boot profiling.</p> +</section> +</section> +<section class="Sh"> +<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> +<p class="Pp"><code class="Nm">tslog</code> was written by + <span class="An">Colin Percival</span> + <<a class="Mt" href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>>.</p> +<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">June 1, 2022</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
