From owner-freebsd-dtrace@FreeBSD.ORG Thu Oct 31 03:55:27 2013 Return-Path: Delivered-To: dtrace@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 82EB557D; Thu, 31 Oct 2013 03:55:27 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qc0-x232.google.com (mail-qc0-x232.google.com [IPv6:2607:f8b0:400d:c01::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 31FB72C35; Thu, 31 Oct 2013 03:55:27 +0000 (UTC) Received: by mail-qc0-f178.google.com with SMTP id x19so1362531qcw.37 for ; Wed, 30 Oct 2013 20:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=bTkqD/N0t7kXbZBPxuaH+We5rYrjfpEaztfC6syqeKo=; b=jYkNpju8Tk77ggqJKFY4ftYyK4yLWUFQc7QSOX2SwWDp9WtmYyvHfcz/ucecHh8lM3 5++YlRnfAQYcltCVUcHWkXl7uEQQHr7fhDcNEJ41xhyrw0kfEGJNj8UtZMy0w4Jo9GlE okAunyY+btre/iWkfmPv6yjul9IT0Qj7Q/Iu7KRR4vK8q12ZtEva74Y0e20V+rJRa7Lk u+sKjHb63jQkW5iXaluS5Ih14Xu7yG0Bh7pzqf6ow+syLEIcifxcEYPYFgTra1y64LZR b+itCoitP+sdNlvYaVTdVMJGK99QGFrCrgXpT5WijlafH6MwCmwe1kS8+6AoP8uPtxQ5 R/kA== X-Received: by 10.224.24.131 with SMTP id v3mr2389673qab.48.1383191726334; Wed, 30 Oct 2013 20:55:26 -0700 (PDT) Received: from raichu (24-212-218-13.cable.teksavvy.com. [24.212.218.13]) by mx.google.com with ESMTPSA id v19sm5028590qaw.0.2013.10.30.20.55.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 30 Oct 2013 20:55:25 -0700 (PDT) Sender: Mark Johnston Date: Wed, 30 Oct 2013 23:55:23 -0400 From: Mark Johnston To: Andriy Gapon Subject: Re: "unstable" sdt probes Message-ID: <20131031035523.GD9355@raichu> References: <5268F461.7080504@FreeBSD.org> <20131024161620.GA1710@charmander> <526A9CB5.2050207@FreeBSD.org> <20131026180643.GA98676@raichu> <527026B3.2070309@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <527026B3.2070309@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: dtrace@FreeBSD.org X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.14 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: Thu, 31 Oct 2013 03:55:27 -0000 On Tue, Oct 29, 2013 at 11:20:51PM +0200, Andriy Gapon wrote: > on 26/10/2013 21:06 Mark Johnston said the following: > > The patch here is what I had in mind: > > http://people.freebsd.org/~markj/patches/zfs_probes.diff > > > > I've only compile-tested it, but it should create illumos-compatible ZFS > > probes without changing any ZFS code, assuming I understand exactly how > > they're creating/naming probes. :) > > The simplicity and straightforwardness of your patch is very seducing! :-) > I think that you missed sys/cddl/compat/opensolaris/sys/sdt.h, but that's a very > a minor issue that is trivial to fix. Oops. I didn't even know that file existed. :) > > I had something a little bit more elaborate on my mind. Something that would > allow DTRACE_PROBE macros to work without providing any additional code per each > probe. And also something that would make DTRACE_PROBE macros appealing to use > in the FreeBSD code proper. Those macros don't address the problem of setting argument types though. We could do what illumos does, i.e. have a single giant table in sdt_subr.c, but IMHO the SDT macros are more flexible. They let you create and modify probes in a kernel module without recompiling the kernel and rebooting, which something I've found handy in the past. For the purpose of creating unstable providers or quick debugging, I guess it's ok to not define argument types, so I don't object to the DTRACE_PROBE interface itself, but it'd be nice to avoid having both SDT_* calls and DTRACE_* calls all over the tree. That'd be confusing. > > So, I got some time to hack on this and here is a result: > http://people.freebsd.org/~avg/dtrace-probe-macros.diff > This change depends upon another change that I've just posted. Huh, for some reason I thought that DATA_SET() didn't work properly in a function body. I remember trying something similar when I changed sdt to use linker sets, and giving up because of some related problems, but I don't remember exactly why. If it works, then I guess it's ok, so long as the sdt code handles duplicate entries in the probe set. :) > > So, no surprise that I feel preference for my change, but I think that your > change has certain advantage as well (esp. brevity and clarity). > > What do you think? The patch looks ok to me, but I can see that it won't apply to head/ - I think it'll need at least r257152 and r254468. Thanks, -Mark