/usr/lib/dtrace/io.d
DTrace type and translator definitions for the io provider.
A dtrace provider for tracing events related to disk i/o
io:::start(struct bio *, struct devstat *);
io:::done(struct bio *, struct devstat *);
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.
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.
/usr/lib/dtrace/io.d
DTrace type and translator definitions for the io provider.
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_length);
}
END
{
printf("%10s %20s %10s %15s\n", "DEVICE", "APP", "PID", "BYTES");
printa("%10s %20s %10d %15@d\n", @);
}
This provider is not compatible with the io provider found in Solaris, as its probes use native FreeBSD argument types.
25 releases since FreeBSD 11.0-RELEASE; the text changed 14 times.