Date: Wed, 15 Apr 2015 15:18:43 -0500 From: Eric Badger <eric.badger@compellent.com> To: Lacey Powers <lacey.leanne@gmail.com>, "freebsd-dtrace@freebsd.org" <freebsd-dtrace@freebsd.org> Subject: Re: io:kernel::done invalid address (0x0) in predicate on FreeBSD 10.1 Message-ID: <552EC7A3.7050508@compellent.com> In-Reply-To: <552EB6A4.4070406@gmail.com> References: <552EB6A4.4070406@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 04/15/15 14:06, Lacey Powers wrote: > Hello Everyone, > > I was trying to port a script from Illumos to FreeBSD 10.1, from this > blog post, here: > > http://dtrace.org/blogs/ahl/2014/08/31/openzfs-tuning/ > > The rw.d script specifically. I wished to use it forsome ZFS tuning and > testing I have been doing on my workstation. > > Here is the script I came up with: > > https://gist.github.com/kassandry/219596d7f17e5b128e68 > > The version I have mostly seems to work, aside from a single error, > repeated a very large number of times during a run.=( > > Example: > > dtrace: error on enabled probe ID 3 (ID 58515: io:kernel::done): invalid > address (0x0) in predicate at DIF offset 60 > dtrace: error on enabled probe ID 3 (ID 58515: io:kernel::done): invalid > address (0x0) in predicate at DIF offset 60 > > Despite adding > > args[0] != NULL > > to the predicate for io:::done, it still comes up. I can't claim expertise here, but it seems that the 'io:::done' probe can receive a 'struct bio' where 'bio_disk' is NULL. So a first thought would be to have a predicate like: /args[0] && args[0]->bio_disk && ts[...]/ I don't know under what circumstances bio_disk is NULL; would require some digging to find out. Someone more familiar with this area may have a better suggestion. Eric
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?552EC7A3.7050508>