tail head cat sleep
QR code linking to this page

Manual Pages  — DTRACE_IO


dtrace_io – 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.


  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_bcount); }

END { printf("%10s %20s %10s %15s , "DEVICE", "APP", "PID", "BYTES"); printa("%10s %20s %10d %15@d , @); }


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


dtrace(1), devstat(9), SDT(9)


The io provider first appeared in FreeBSD 9.2 and 10.0.


This manual page was written by Mark Johnston <Mt markj@FreeBSD.org>.


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

DTRACE_IO (4) April 18, 2015

tail head cat sleep
QR code linking to this page

Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

You have successfully logged in, Now press any key to log out