[Bug 220965] Some dtrace_io probes lack struct bio reference
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Jul 24 11:48:17 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220965
Bug ID: 220965
Summary: Some dtrace_io probes lack struct bio reference
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: freebsd-bugs at FreeBSD.org
Reporter: fk at fabiankeil.de
According to dtrace_io(4) and "dtrace -lvn io:::", the dtrace_io probes use
a struct bio * as arg[0] to represent the I/O request, however that is only
true for the probes declared with a define with _BIO_ in its name.
Quoting sys/kern/subr_devstat.c:
57 #define DTRACE_DEVSTAT_START() SDT_PROBE2(io, , , start, NULL,
ds)
58 #define DTRACE_DEVSTAT_BIO_START() SDT_PROBE2(io, , , start, bp,
ds)
59 #define DTRACE_DEVSTAT_DONE() SDT_PROBE2(io, , , done, NULL,
ds)
60 #define DTRACE_DEVSTAT_BIO_DONE() SDT_PROBE2(io, , , done, bp,
ds)
As a result, even simple scripts like the example in dtrace_io(4) result in
errors like:
dtrace: error on enabled probe ID 1 (ID 41752: io:kernel:none:start): invalid
address (0x20) in action #6 at DIF offset 16
One can workaround this by skipping probes without bio reference by adding:
/args[0] != NULL/
but it would be more convenient if probes with bio reference had a different
name than
those that don't.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list