summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/dtrace_io.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/dtrace_io.4 3.html')
-rw-r--r--static/freebsd/man4/dtrace_io.4 3.html109
1 files changed, 109 insertions, 0 deletions
diff --git a/static/freebsd/man4/dtrace_io.4 3.html b/static/freebsd/man4/dtrace_io.4 3.html
new file mode 100644
index 00000000..71eeeb78
--- /dev/null
+++ b/static/freebsd/man4/dtrace_io.4 3.html
@@ -0,0 +1,109 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">DTRACE_IO(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">DTRACE_IO(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_io</code> &#x2014; <span class="Nd">a
+ DTrace provider for tracing events related to disk I/O</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="Fn">io:::start</code>(<var class="Fa" style="white-space: nowrap;">struct
+ bio *</var>, <var class="Fa" style="white-space: nowrap;">struct devstat
+ *</var>);</p>
+<p class="Pp"><code class="Fn">io:::done</code>(<var class="Fa" style="white-space: nowrap;">struct
+ bio *</var>, <var class="Fa" style="white-space: nowrap;">struct devstat
+ *</var>);</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">io</code> provider allows the tracing of disk
+ I/O events. The
+ <a class="permalink" href="#io:::start"><code class="Fn" id="io:::start">io:::start</code></a>()
+ probe fires when a I/O request is about to be sent to the backing driver of
+ a <a class="Xr">disk(9)</a> object. This occurs after all
+ <a class="Xr">GEOM(4)</a> transformations have been performed on the
+ request. The
+ <a class="permalink" href="#io:::done"><code class="Fn" id="io:::done">io:::done</code></a>()
+ probe fires when a I/O request is completed. Both probes take a
+ <var class="Vt">struct bio *</var> representing the I/O request as their
+ first argument. The second argument is a <var class="Vt">struct devstat
+ *</var> for the underlying <a class="Xr">disk(9)</a> object.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="ARGUMENTS"><a class="permalink" href="#ARGUMENTS">ARGUMENTS</a></h1>
+<p class="Pp">The fields of <var class="Vt">struct bio</var> are described in
+ the <a class="Xr">g_bio(9)</a> manual page, and the fields of
+ <var class="Vt">struct devstat</var> are described in the
+ <a class="Xr">devstat(9)</a> manual page. Translators for the
+ <var class="Vt">bufinfo_t</var> and <var class="Vt">devinfo_t</var> D types
+ are defined in <span class="Pa">/usr/lib/dtrace/io.d</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1>
+<dl class="Bl-tag Bl-compact">
+ <dt><span class="Pa">/usr/lib/dtrace/io.d</span></dt>
+ <dd>DTrace type and translator definitions for the <code class="Nm">io</code>
+ provider.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp">The following script shows a per-process breakdown of total I/O by
+ disk device:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>#pragma D option quiet
+
+io:::start
+{
+ @[args[1]-&gt;device_name, execname, pid] = sum(args[0]-&gt;bio_length);
+}
+
+END
+{
+ printf(&quot;%10s %20s %10s %15s\n&quot;, &quot;DEVICE&quot;, &quot;APP&quot;, &quot;PID&quot;, &quot;BYTES&quot;);
+ printa(&quot;%10s %20s %10d %15@d\n&quot;, @);
+}</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="COMPATIBILITY"><a class="permalink" href="#COMPATIBILITY">COMPATIBILITY</a></h1>
+<p class="Pp">This provider is not compatible with the
+ <code class="Nm">io</code> provider found in Solaris, as its probes use
+ native <span class="Ux">FreeBSD</span> argument types.</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">devstat(9)</a>,
+ <a class="Xr">SDT(9)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">io</code> provider first appeared in
+ <span class="Ux">FreeBSD</span> 9.2 and 10.0.</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">Mark
+ Johnston</span>
+ &lt;<a class="Mt" href="mailto:markj@FreeBSD.org">markj@FreeBSD.org</a>&gt;.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1>
+<p class="Pp">The <code class="Fn">io:::wait-start</code>() and
+ <code class="Fn">io:::wait-done</code>() probes are not currently
+ implemented on <span class="Ux">FreeBSD</span>.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">October 26, 2025</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>