dtrace_io(4freebsd)

dtrace_io4freebsd

A dtrace provider for tracing events related to disk i/o

Usage

io:::start(struct bio *, struct devstat *);

io:::done(struct bio *, struct devstat *);

Overview

The io provider allows the tracing of disk I/O events. The io:::start() probe fires when a I/O request is about to be sent to the backing driver of a disk(9) object. This occurs after all GEOM(4) transformations have been performed on the request. The io:::done() probe fires when a I/O request is completed. Both probes take a struct bio * representing the I/O request as their first argument. The second argument is a struct devstat * for the underlying disk(9) object.

Arguments

The fields of struct bio are described in the g_bio(9) manual page, and the fields of struct devstat are described in the devstat(9) manual page. Translators for the bufinfo_t and devinfo_t D types are defined in /usr/lib/dtrace/io.d.

Files

/usr/lib/dtrace/io.d

DTrace type and translator definitions for the io provider.

Examples

The following script shows a per-process breakdown of total I/O by disk device:

#pragma D option quiet
io:::start
{
        @[args[1]->device_name, execname, pid] = sum(args[0]->bio_bcount);
}
END
{
        printf("%10s %20s %10s %15s\n", "DEVICE", "APP", "PID", "BYTES");
        printa("%10s %20s %10d %15@d\n", @);
}

Compatibility

This provider is not compatible with the io provider found in Solaris, as its probes use native FreeBSD argument types.

Releases

5 releases since Debian 9 (Stretch); the text changed 2 times.

  1. 9
  2. 10
  3. 11–13

History

The io provider first appeared in FreeBSD 9.2 and 10.0.

Authors

This manual page was written by Mark Johnston ⟨[email protected]⟩.

Bugs

The io:::wait-start() and io:::wait-done() probes are not currently implemented on FreeBSD.

From freebsd-manpages 12.2-2 in Debian 13 (Trixie). Parsed by carta from the page's mdoc source.