From owner-freebsd-dtrace@FreeBSD.ORG Wed Apr 15 20:18:56 2015 Return-Path: Delivered-To: freebsd-dtrace@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EAA02693 for ; Wed, 15 Apr 2015 20:18:56 +0000 (UTC) Received: from aussmtpmrkpc120.us.dell.com (aussmtpmrkpc120.us.dell.com [143.166.82.159]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "ausxipmktpc11.us.dell.com", Issuer "Verizon Public SureServer CA G14-SHA1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id A50B9D1C for ; Wed, 15 Apr 2015 20:18:56 +0000 (UTC) X-Loopcount0: from 64.238.244.148 X-IronPort-AV: E=Sophos;i="5.11,583,1422943200"; d="scan'208";a="242821117" Message-ID: <552EC7A3.7050508@compellent.com> Date: Wed, 15 Apr 2015 15:18:43 -0500 From: Eric Badger User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Lacey Powers , "freebsd-dtrace@freebsd.org" Subject: Re: io:kernel::done invalid address (0x0) in predicate on FreeBSD 10.1 References: <552EB6A4.4070406@gmail.com> In-Reply-To: <552EB6A4.4070406@gmail.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "A discussion list for developers working on DTrace in FreeBSD." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Apr 2015 20:18:57 -0000 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