Date: Thu, 31 May 2012 12:23:22 -0400 From: George Neville-Neil <gnn@freebsd.org> To: Fabian Keil <freebsd-listen@fabiankeil.de> Cc: arch@freebsd.org Subject: Re: RFC: A trial io provider for DTrace... Message-ID: <F68B592D-234D-4E75-BECC-6B9295779C37@freebsd.org> In-Reply-To: <20120528190300.3a43fc8d@fabiankeil.de> References: <86wr40tfhf.wl%gnn@neville-neil.com> <20120528190300.3a43fc8d@fabiankeil.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On May 28, 2012, at 13:03 , Fabian Keil wrote: > Worked for me when applying with -p0. >=20 Great! >> The arguments are not exactly the same as in Solaris, for instance I >> don't yet support the fileinfo_t, but, you can get to the devstat and >> bio structures via args[0] and args[1] respectively. >>=20 >> Here is an example of it working: >>=20 >> dtrace -n 'io:::start /args[0] !=3D 0/{ trace(args[0]->bio_bcount)}' >>=20 >> Remember you need to be root to use DTrace. >=20 > Do you intent to eventually commit your patch to get dtrace working > with sudo? I've been using it since you posted it last October and > haven't seen any issues. > = http://lists.freebsd.org/pipermail/freebsd-current/2011-October/028120.htm= l >=20 Sorry, what I meant was that you needed root privilege to run DTrace, sudo will give you that. > I got: >=20 > clang -c -O2 -pipe -fno-strict-aliasing -std=3Dc99 -g -Wall = -Wredundant-decls -Wnested-externs -Wstrict-prototypes = -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual > /usr/src/sys/kern/subr_devstat.c:390:2: error: use of undeclared = identifier 'bs' > DTRACE_DEVSTAT_BIO_DONE(); > ^ > /usr/src/sys/kern/subr_devstat.c:76:41: note: expanded from macro = 'DTRACE_DEVSTAT_BIO_DONE' > (*dtrace_io_done_probe)(dtio_done_id, bs, ds); > ^ > 1 error generated. > *** Error code 1 >=20 > Stop in /usr/obj/usr/src/sys/ZOEY. > *** Error code 1 >=20 > Stop in /usr/src. > *** [buildkernel] Error code 1 >=20 > and used the following patch to get it to compile: >=20 > diff --git a/sys/kern/subr_devstat.c b/sys/kern/subr_devstat.c > index e2b6d21..732bf9c 100644 > --- a/sys/kern/subr_devstat.c > +++ b/sys/kern/subr_devstat.c > @@ -73,7 +73,7 @@ uint32_t dtio_wait_done_id; >=20 > #define DTRACE_DEVSTAT_BIO_DONE() \ > if (dtrace_io_done_probe !=3D NULL) \ > - (*dtrace_io_done_probe)(dtio_done_id, bs, ds); > + (*dtrace_io_done_probe)(dtio_done_id, bp, ds); >=20 > Other than that the provider seems to work fine so far. OK, let me get that fixed up and put up a newer patch. Thanks for testing and replying! Best, George
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F68B592D-234D-4E75-BECC-6B9295779C37>