From owner-freebsd-dtrace@FreeBSD.ORG Sat Jul 13 23:42:07 2013 Return-Path: Delivered-To: freebsd-dtrace@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 47C97774; Sat, 13 Jul 2013 23:42:07 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-ie0-x22a.google.com (mail-ie0-x22a.google.com [IPv6:2607:f8b0:4001:c03::22a]) by mx1.freebsd.org (Postfix) with ESMTP id 0C8E21363; Sat, 13 Jul 2013 23:42:07 +0000 (UTC) Received: by mail-ie0-f170.google.com with SMTP id e11so23858944iej.29 for ; Sat, 13 Jul 2013 16:42:06 -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=b8RF7NxAVZWNFeTv8ndEKGmNLaaKmffQ2JSvhdWVDWA=; b=X9W1ehyp87pSxrZpt0Y7TeYEuyuQ/25moeL5jlxV8jbh3xyylYm5PqtXo2LQ00n0Xh Ggrj1xkFo4h21xhY/NpyUKTCBvf3IJhksze1SGEDiKvDY810YwkpT55HugSajJrHQW4J g/EoDjphMn51A1Q2b9cLvVbRnDSLDeJDNUxsli/1YNpN6GKbNqkYlbU54MzvOO7tWWAi eDCNjt9exQYZPhH8ovrtsAeezsOUdAX1N6rQRoDGhdoxnTVYrYXa5NVlNAwSC+AiSWwe 8+8JB9qC5B9poIo0vwkwa3Xi7k8jUe/7Vw94MP60UtOjJ50QWqXn9rhMckSBm+QUCeMn WlxA== X-Received: by 10.50.134.101 with SMTP id pj5mr3694001igb.31.1373758926801; Sat, 13 Jul 2013 16:42:06 -0700 (PDT) Received: from raichu (24-212-218-13.cable.teksavvy.com. [24.212.218.13]) by mx.google.com with ESMTPSA id z15sm8460996igp.0.2013.07.13.16.42.05 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 13 Jul 2013 16:42:05 -0700 (PDT) Sender: Mark Johnston Date: Sat, 13 Jul 2013 19:42:00 -0400 From: Mark Johnston To: Mikolaj Golub Subject: Re: [RFC] reworking FreeBSD's SDT implementation Message-ID: <20130713234200.GA40803@raichu> References: <20130703041023.GA82673@raichu> <20130711024500.GA67976@raichu> <20130711210215.GB7506@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130711210215.GB7506@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: freebsd-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: Sat, 13 Jul 2013 23:42:07 -0000 On Fri, Jul 12, 2013 at 12:02:16AM +0300, Mikolaj Golub wrote: > Hi Mark, > > On Wed, Jul 10, 2013 at 10:45:08PM -0400, Mark Johnston wrote: > > > The final draft of my patch is here: > > http://people.freebsd.org/~markj/patches/sdt-module-info/20130710-sdt-module-info.diff > > > > I've committed the mod_lock stuff and man page separately. If no one has > > any objections, I'll commit the patch sometime this weekend. > > Review and comments are still very welcome! > > One thing noticed. I don't think '#if defined(sun)' directives in > dtrace.c are correct now: > > > -#if defined(sun) > > /* > > * DTrace Hook Functions > > */ > > static void > > -dtrace_module_loaded(modctl_t *ctl) > > +dtrace_module_loaded(struct linker_file *lf) > > ctl is unconditionally removed > > > { > > dtrace_provider_t *prv; > > > > @@ -15166,14 +15150,16 @@ dtrace_module_loaded(modctl_t *ctl) > > mutex_enter(&mod_lock); > > #endif > > > > +#if defined(sun) > > ASSERT(ctl->mod_busy); > > +#endif > > while here it is used if sun is defined. > > > > > /* > > * We're going to call each providers per-module provide operation > > * specifying only this module. > > */ > > for (prv = dtrace_provider; prv != NULL; prv = prv->dtpv_next) > > - prv->dtpv_pops.dtps_provide_module(prv->dtpv_arg, ctl); > > + prv->dtpv_pops.dtps_provide_module(prv->dtpv_arg, lf); > > And this looks wrong for sun case. > > The same issues are in dtrace_module_unloaded(). Thanks for pointing this out - I've fixed these problems in the following diff: http://people.freebsd.org/~markj/patches/sdt-module-info/20130713-sdt-module-info.diff It turns out that we typedef modctl_t to struct linker_file, so I don't need to have separate cases for defined(sun) and !defined(sun) in a few places. -Mark