Date: Mon, 24 Jul 2017 11:48:17 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 220965] Some dtrace_io probes lack struct bio reference Message-ID: <bug-220965-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org Reporter: fk@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-220965-8>
