Skip site navigation (1)Skip section navigation (2)
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>