From owner-freebsd-current@FreeBSD.ORG Sun Jun 11 20:11:30 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D008C16A418 for ; Sun, 11 Jun 2006 20:11:30 +0000 (UTC) (envelope-from marius.nuennerich@gmx.net) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by mx1.FreeBSD.org (Postfix) with SMTP id 1A90C43D45 for ; Sun, 11 Jun 2006 20:11:29 +0000 (GMT) (envelope-from marius.nuennerich@gmx.net) Received: (qmail invoked by alias); 11 Jun 2006 20:11:28 -0000 Received: from pD9ECC9D2.dip0.t-ipconnect.de (EHLO sol.hackerzberg.local) [217.236.201.210] by mail.gmx.net (mp018) with SMTP; 11 Jun 2006 22:11:28 +0200 X-Authenticated: #5707313 Date: Sun, 11 Jun 2006 22:11:14 +0200 From: Marius Nuennerich To: John Birrell Message-ID: <20060611221114.2caacdcc@sol.hackerzberg.local> In-Reply-To: <20060611183809.GA60353@what-creek.com> References: <20060611145351.221ec001@sol.hackerzberg.local> <20060611183809.GA60353@what-creek.com> X-Mailer: Sylpheed-Claws 2.2.2 (GTK+ 2.8.18; i386-portbld-freebsd6.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-Mailman-Approved-At: Sun, 11 Jun 2006 20:18:21 +0000 Cc: current@freebsd.org Subject: Re: DTrace SDT Provider not working? X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Jun 2006 20:11:30 -0000 Hi John, thanks for your answer! On Sun, 11 Jun 2006 18:38:09 +0000 John Birrell wrote: > > [ I forgot to copy current@ ] > > On Sun, Jun 11, 2006 at 02:53:51PM +0200, Marius Nuennerich wrote: > > > > I tried to add the SDT Hooks for callout(9), see attached patch. > > > # dtrace -l -f callout > > > ID PROVIDER MODULE FUNCTION NAME > > > 6 sdt kernel callout entry > > > 7 sdt kernel callout return > > > > however, a simple > > > > > # dtrace -n 'sdt:kernel:callout:entry{printf("1");}' > > > > prints that a probe is matched but nothing else, same for > > sdt:kernel:linker_load_module:entry and kldload'ing a module. > > > > I use the snapshot code you provided. > > > > Any idea where to look next? > > Are you sure that the function is actually being called? I added a printf after the first SDT_PROBE I added to kern_timeout.c. That prints very often on the console even after boot. > The version of code you have has the fbt provider restricted to just a > few probes. You could try changing the filter in that to allow it > to look at more functions. Be warned though that there are some that > aren't safe to instrument. I'm still tracking those down, so enabling > all probes with fbt::: is very unwise if you remove the filter I have > in there. Ok, where can I tune the filter? > Using fbt you will be able to see what functions are being called > more easily. This might explain what is happening with the sdt code > you've added (which looks like it should work). Ok. Thanks for the Hint. It seems like the softclock function is not known to fbt by default right now. I wonder why sdt:kernel:linker_load_module:entry isn't fired when kldload'ing, does it work on your machine(s)? regards Marius P.S. sdt:kernel:callout:entry: 0xeb 0x00 0xa1 0xbc 0x75 0x9c 0xc0 0x8b 0x15 0xc0 0x75 0x9c 0xc0 0x09 0xc2 0x74 0x13 0x6a 0x00 0x6a 0x00 0x6a 0x00 0x6a 0x00 0x53 0x50 0xff 0x15 0x50 0x5d 0x9c 0xc0 0x83 0xc4 0x18 Is printed on boot. Is it normal that it is this many Bytes? I thought it would just be the jmp (0xeb) directly followed by a one byte offset? P.P.S. Why do you use a near jmp instead of NOPs? Just curious. Is there any documentation for implementation details of DTrace, haven't found much so far.