From owner-freebsd-dtrace@FreeBSD.ORG Tue Nov 12 04:06:13 2013 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 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C6A06C67 for ; Tue, 12 Nov 2013 04:06:13 +0000 (UTC) Received: from nm5-vm4.bullet.mail.sg3.yahoo.com (nm5-vm4.bullet.mail.sg3.yahoo.com [106.10.148.147]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A704F3CBB for ; Tue, 12 Nov 2013 04:06:12 +0000 (UTC) Received: from [106.10.166.127] by nm5.bullet.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 04:03:06 -0000 Received: from [106.10.151.122] by tm16.bullet.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 04:03:06 -0000 Received: from [127.0.0.1] by omp1004.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 04:03:06 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 787207.29901.bm@omp1004.mail.sg3.yahoo.com Received: (qmail 51618 invoked by uid 60001); 12 Nov 2013 04:03:06 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.in; s=s1024; t=1384228986; bh=uauuqYEG4VhCz+MOnEAEaoX6McAI1sNOiAgT3rUVmzw=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Reply-To:To:MIME-Version:Content-Type; b=SPoTFVODbUBYKPWLqZFsTk0AaM4tC/XHnLvAResGqDp9dSXlBtK66CUr1SJUy+Bry0341j+BklncsRfbip4lVuUPbiE0Uci8iCaSRElKoGxkbhAa4KNzDbhGrjBvgp5Pp1jg6KuHKBaNXV+Zx31dN13TTdaGK1q/C2tz7ofzhoI= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:Message-ID:Date:From:Reply-To:To:MIME-Version:Content-Type; b=iWsSp9+uSJTfFsAO2Bk3hNVu2DJcbZ9l3nNm3nVp9x/2RE19Nu+ujJVMz6kK6y8SVFAUYzW/mPrsUi4eXvwege+K/ycnvhJ+Z8UgrCHKAM5C3mb3AL6y0cVtPvDWpDhS9g68W4ojUJ/d6WoCKiJ5AjJg5hUpnPs2AZNrFafGr+A=; X-YMail-OSG: wM8hN5UVM1kK7xfM5mAPuOXbmYSGR4rsdkV6Ht3vuFYnSHH IaGtsSF6QFV3cqtMrWacXFE1PP9ssZJQRcL32cyS4_aTvEgKaBKEE2RKTFL2 Wo.SMAB6nGu8JraGqcga90uoHCOpkGPJUaYuIhP5yXfZQIyB4MYcLa9BsuVP mDyT8EON2h587o9rDObIj2WkAs0NMkRV_syVLFjhLL4xtSGMUvrRUC9YkEFY Lyz6UC8kvMcSL.wxO1krJ7acLDG9j53VOJxrGlvBv.Ks6HAoOAIq1oZ6V6tV zyNGl6fd3KyvHKiE1sFooUx9_4HKkOkZTj143fbc5hXnqvJDtguYIJw8.ao7 MnJ1i2YsuzL8o_3f_mbX4DOS.xRKc5_7LuhGwzItwqZ482YllVEf8.RDK.ds UEKSR7OwGC4sbddny3rpgZLlYBEsgqwUmrMrfwlE5sqkNFi05NIXYj0IA3hz 4Bis97igu2YKydM_AUx8UoO8nGI1KGljqWJJsHv90ubmlJbxJQToVkRCBvqP pJ9NIC2mCnnxxjJB.OeevQwP2fqCXVv1h8Xl.DoJmyz8zgg_jl8NR_Z.uD5x HcXQomXvekfQnwi0DzVRRfPLxz7FS2YV30c6Fj6c- Received: from [217.165.101.109] by web192604.mail.sg3.yahoo.com via HTTP; Tue, 12 Nov 2013 12:03:06 SGT X-Rocket-MIMEInfo: 002.001, SGVsbG8sIAoKSSBoYWQgYmVlbiBkb2luZyBzb21lIHdvcmsgb24gdGhlIHBpZCBwcm92aWRlciBpbiBEdHJhY2UuSSBoYXZlIG1hZGUgYSBmZXcgbW9kaWZpY2F0aW9uCsKgc28gdGhhdCBpdCB3aWxsIGxpc3QgYWxsIHRoZSBmdW5jdGlvbnMgdXNlZCBpbiB0aGUgcHJvZ3JhbSBhcyBzZWVuIGluIFNvbGFyaXMgb3IgTWFjT1NYLgrCoFByZXNlbnRseSBpbiBGcmVlQlNELCB5b3UgaGF2ZSB0byBuYW1lIGVhY2ggZnVuY3Rpb25zIHlvdSBoYXZlIHRvIHByb2JlIGluIHRoZSBwcm9ncmFtLiBGb3IKwqBleGFtcGwBMAEBAQE- X-Mailer: YahooMailWebService/0.8.163.597 Message-ID: <1384228985.51085.YahooMailNeo@web192604.mail.sg3.yahoo.com> Date: Tue, 12 Nov 2013 12:03:05 +0800 (SGT) From: Prashanth Kumar To: "freebsd-dtrace@freebsd.org" MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.16 X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list Reply-To: Prashanth Kumar 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: Tue, 12 Nov 2013 04:06:13 -0000 Hello, =0A=0AI had been doing some work on the pid provider in Dtrace.I hav= e made a few modification=0A=A0so that it will list all the functions used = in the program as seen in Solaris or MacOSX.=0A=A0Presently in FreeBSD, you= have to name each functions you have to probe in the program. For=0A=A0exa= mple "dtrace -n 'pid$target:program::entry' -c ./program" will list all the= functions called=0A=A0in the program.This modification was made in libproc= library(proc_sym.c).=0A=0A=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Also while cre= ating probe points for return probe type, any function with more than one r= eturn=0A=A0path will fail.This is because "fasttrap_probe_spec_t" type vari= able is not fully copied into the=0A=A0kernel in fasttrap_ioctl() function.= I have modified in line with Solaris code where the copying=A0 is=0A=A0done= manually by Dtrace, rather than the kernel.(fasttap.c, fasttrap.h)=0A=A0Al= so in "fasttrap_pid_probe()" (fasttrap_isa.c) for the case of "FASTTRAP_T_P= USHL_EBP", the ebp register=0A=A0has to be copied to the stack not esp.=0A= =A0=A0=A0=A0=A0=A0=A0 I had attached the patch files for review.=0A=0A=A0On= e other issue i noticed is that if the program being traced uses Thread Loc= al Storage than=0A=A0for the case of entry probe, it will hang in ___tls_ge= t_addr function in ld-elf.so.=0A=A0If you use scanf or fscanf in your progr= am you can notice this behaviour. This i believe is due to=0A=A0Dtrace usin= g gs segment register to point to the scratch space, and TLS also loading t= he thread variable=0A=A0from gs register.=0A=0A=A0if you change the followi= ng code in fasttrap_isa.c=0A=A0=0A=A0#ifdef __i386__=0A=A0=A0=A0=A0= =A0=A0=A0=A0 addr =3D USD_GETBASE(&curthread->td_pcb->pcb_gsd);=0A=A0#else= =0A=A0=A0=A0=A0=A0=A0=A0=A0 addr =3D curthread->td_pcb->pcb_gsbase;=0A=A0#e= ndif=0A=A0=A0=A0=A0=A0=A0=A0=A0 addr +=3D sizeof (void *);=A0 =A0=0A=A0=0A=0A=A0to=0A=0A=A0=0A=A0#ifdef __i386__=0A=A0=A0=A0=A0=A0=A0=A0= =A0 addr =3D USD_GETBASE(&curthread->td_pcb->pcb_gsd);=0A=A0#else=0A=A0=A0= =A0=A0=A0=A0=A0=A0 addr =3D curthread->td_pcb->pcb_gsbase;=0A=A0#endif=0A= =A0=A0=A0=A0=A0=A0=A0=A0 addr +=3D sizeof (void *) * 3;=A0 =A0=0A=A0= =0A=0A=A0the Dtrace will not hang. I am not sure what is happening here and= =0A=A0whether this is the correct solution.=0A=A0This changes were made in = FreeBSD 9.2-386-RELEASE. I applied the above patches on=0A=A0FreeBSD 10-BET= A (with some manual work) and it was still working. From owner-freebsd-dtrace@FreeBSD.ORG Tue Nov 12 04:18:13 2013 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 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B2CC5D4C for ; Tue, 12 Nov 2013 04:18:13 +0000 (UTC) Received: from mail-ie0-x231.google.com (mail-ie0-x231.google.com [IPv6:2607:f8b0:4001:c03::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 845853D3F for ; Tue, 12 Nov 2013 04:18:13 +0000 (UTC) Received: by mail-ie0-f177.google.com with SMTP id qd12so947086ieb.22 for ; Mon, 11 Nov 2013 20:18:13 -0800 (PST) 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:content-transfer-encoding :in-reply-to:user-agent; bh=K9/zTXZiKhtFrdh1zM1tEgAsiuDWS01LH5rLiNeeKoE=; b=bvy9BLdr4YGADQVKruRDCfVcjhn5za24raEja10ijhO/P2SqvL3k2pzsxpxU6jWo7C aBc9qOsMYJ3Vyuq1/BvyOAPhLW42Nw72WnS+CsOlasGNfw6FMPQTDmOZQGJuQL1zOk9A AEmvRWG2wIupOoRqN9fDmgvEP8IKTOmsWuVpdD3ob+vn0o7qrjJYEYJrrr4oEJGs3xsl 3m/sW9vUFpovroZdHyoTAaM1a8mtivbikGjOTuVOeWG32V5vJCXsSTJ/TIV3s4Rqs+Hc tex3lqAUpzT1Z4t2lu48qksZyjXl6FsqeyHWxfoNWcpZHclkJk7qEnUxl4OQtm0OfqFd gZiQ== X-Received: by 10.50.82.41 with SMTP id f9mr14755179igy.26.1384229893024; Mon, 11 Nov 2013 20:18:13 -0800 (PST) Received: from raichu (24-212-218-13.cable.teksavvy.com. [24.212.218.13]) by mx.google.com with ESMTPSA id f5sm22528908igc.4.2013.11.11.20.18.09 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 11 Nov 2013 20:18:10 -0800 (PST) Sender: Mark Johnston Date: Mon, 11 Nov 2013 23:18:05 -0500 From: Mark Johnston To: Prashanth Kumar Subject: Re: your mail Message-ID: <20131112041805.GA76413@raichu> References: <1384228985.51085.YahooMailNeo@web192604.mail.sg3.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1384228985.51085.YahooMailNeo@web192604.mail.sg3.yahoo.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.16 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: Tue, 12 Nov 2013 04:18:13 -0000 On Tue, Nov 12, 2013 at 12:03:05PM +0800, Prashanth Kumar wrote: > Hello, > > I had been doing some work on the pid provider in Dtrace. Hi Prashanth, I've been going through your patches and committing them as time permits. > I have made a few modification >  so that it will list all the functions used in the program as seen in Solaris or MacOSX. >  Presently in FreeBSD, you have to name each functions you have to probe in the program. For >  example "dtrace -n 'pid$target:program::entry' -c ./program" will list all the functions called >  in the program.This modification was made in libproc library(proc_sym.c). This has been fixed: http://svnweb.freebsd.org/base?view=revision&revision=257300 http://svnweb.freebsd.org/base?view=revision&revision=258000 > >             Also while creating probe points for return probe type, any function with more than one return >  path will fail.This is because "fasttrap_probe_spec_t" type variable is not fully copied into the >  kernel in fasttrap_ioctl() function.I have modified in line with Solaris code where the copying  is >  done manually by Dtrace, rather than the kernel.(fasttap.c, fasttrap.h) I'm working on this one. >  Also in "fasttrap_pid_probe()" (fasttrap_isa.c) for the case of "FASTTRAP_T_PUSHL_EBP", the ebp register >  has to be copied to the stack not esp. >         I had attached the patch files for review. This has been fixed: http://svnweb.freebsd.org/base?view=revision&revision=257679 http://svnweb.freebsd.org/base?view=revision&revision=257143 > >  One other issue i noticed is that if the program being traced uses Thread Local Storage than >  for the case of entry probe, it will hang in ___tls_get_addr function in ld-elf.so. >  If you use scanf or fscanf in your program you can notice this behaviour. This i believe is due to >  Dtrace using gs segment register to point to the scratch space, and TLS also loading the thread variable >  from gs register. I haven't been able to reproduce this one yet. If you can send me a program and D script that does the trick, that'd be very helpful. > >  if you change the following code in fasttrap_isa.c >   >  #ifdef __i386__ >          addr = USD_GETBASE(&curthread->td_pcb->pcb_gsd); >  #else >          addr = curthread->td_pcb->pcb_gsbase; >  #endif >          addr += sizeof (void *);    >   > >  to > >   >  #ifdef __i386__ >          addr = USD_GETBASE(&curthread->td_pcb->pcb_gsd); >  #else >          addr = curthread->td_pcb->pcb_gsbase; >  #endif >          addr += sizeof (void *) * 3;    >   > >  the Dtrace will not hang. I am not sure what is happening here and >  whether this is the correct solution. Neither am I. :) >  This changes were made in FreeBSD 9.2-386-RELEASE. I applied the above patches on >  FreeBSD 10-BETA (with some manual work) and it was still working. > _______________________________________________ > freebsd-dtrace@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-dtrace > To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe@freebsd.org" From owner-freebsd-dtrace@FreeBSD.ORG Tue Nov 12 12:45:02 2013 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 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EB3CAEC7 for ; Tue, 12 Nov 2013 12:45:02 +0000 (UTC) Received: from nm35-vm9.bullet.mail.sg3.yahoo.com (nm35-vm9.bullet.mail.sg3.yahoo.com [106.10.150.238]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 285B72923 for ; Tue, 12 Nov 2013 12:45:00 +0000 (UTC) Received: from [106.10.166.120] by nm35.bullet.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 12:42:40 -0000 Received: from [106.10.151.254] by tm9.bullet.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 12:42:40 -0000 Received: from [127.0.0.1] by omp1003.mail.sg3.yahoo.com with NNFMP; 12 Nov 2013 12:42:40 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 8028.99653.bm@omp1003.mail.sg3.yahoo.com Received: (qmail 73105 invoked by uid 60001); 12 Nov 2013 12:42:39 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.in; s=s1024; t=1384260159; bh=iklqIUOw+8kSLCNl1iIYeANqgO2cb2LWBu5+UmGaixM=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=KIMSq8UjDDIMw6YvYGpDvEv6oqzI59kr2XDuCEG0G3mDDBRcbh1kjOgQBN1pcgWOYngzzKoerWSl43DNMMYk/kABe8sfYa8v2gbM4qk4Lb+MTYuVat85+KFEu2o9tp9dPRR4fHeb8rX1iN/5BSob6bpuIgUIeMU5NlmaQbC36EA= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.co.in; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:In-Reply-To:MIME-Version:Content-Type; b=Vtt67JWML0VlgSqM+JboDNy84V9A49NOl9LBbklGDevzy9sbXDZS2gC7v2A00j9wO62XKByMdwvg2rOMTkHYZYNSS+4IYRkZZ9yabM/2gETO9GBiBne8GoaGVC01IkpIdxXz6NroR9c2ujp2t1d9PnHAzCP+hVjijfytouLniU0=; X-YMail-OSG: 4S0Y4XcVM1llK40whjL.rczd3TdaCtBfu8mVkJwsoVFIBz. ZYA9BefrBUKs3RqL8e86Zx2.tg2pYKAdiTKCpv89gTF_CRrlAusTBzMPGVg3 b5bEAaEVX7ao8PFVcESrTHf_TGVwATrv2oOepGjAFaDjihhOoCrdPZa3nkB_ eLDeK745gHg5onni4pZzBxutmyUDTsWy8rPRWeQGpSwLYSsOs_4kweJAUKTr Ldl.kynMaURe1JROQBIb19XdAh1eq6b9eIYwe4FzfutPhQURq0gQGu9IY1cA mKlb6guX1LN_piKkPF2.Y6FzP_whwquSvStMZJaxhc8b31N.xGhUiP5ybnH6 .EBp_1szyRgtxyMQaKnkDA6WXuyp.Poiov.Vx5l4FJsAaLOiS9NpuS1JbGsw nki1PIyu5.w8JfMFfzOr_ILP9b6uajprwjGQkO4mDE_Q0sXL6fE68wY50icl GKNYPYs4puRdQ8gXNlgQXt6KenD2s1nv0Mop7jn3Auz1wd4PYRxgGLFB1g8u qqHgl9aBw2fy6uU0iUAaPH3HOHwKAE.K2tzhaQwD9ERoUbRp6FMtfnTDE65. pog8dJX6ZPtVXQfIUelHM2MfbaqF2BLIhZEKLP_Rq7obmaYy4_G_c2_dkEKs yDA-- Received: from [217.165.101.109] by web192605.mail.sg3.yahoo.com via HTTP; Tue, 12 Nov 2013 20:42:39 SGT X-Rocket-MIMEInfo: 002.001, SGkgTWFyawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8qIHNjYW4uYyAqLwoKI2luY2x1ZGUgPHN0ZGlvLmg.CgppbnQgbWFpbigpCnsKwqDCoMKgIGludCBzdHJbMTBdOwoKwqDCoMKgIGlmIChzY2FuZigiJXMiLCBzdHIpID4gMCkKwqDCoMKgIMKgwqDCoCBwcmludGYoIm5hbWUgJXNcbiIsIHN0cik7CgrCoMKgwqAgcmV0dXJuIDA7Cn0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAiZHRyYWNlIC1uICdwaWQkdGFyZ2V0Ojo6ZW50cnknIC1jIHNjYW5mIgoKaWYgeW8BMAEBAQE- X-Mailer: YahooMailWebService/0.8.163.597 References: <1384228985.51085.YahooMailNeo@web192604.mail.sg3.yahoo.com> <20131112041805.GA76413@raichu> <1384258564.17896.YahooMailNeo@web192603.mail.sg3.yahoo.com> Message-ID: <1384260159.73063.YahooMailNeo@web192605.mail.sg3.yahoo.com> Date: Tue, 12 Nov 2013 20:42:39 +0800 (SGT) From: Prashanth Kumar Subject: Fw: your mail To: "freebsd-dtrace@freebsd.org" In-Reply-To: <1384258564.17896.YahooMailNeo@web192603.mail.sg3.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.16 X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.16 Precedence: list Reply-To: Prashanth Kumar 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: Tue, 12 Nov 2013 12:45:03 -0000 Hi Mark=0A=0A---------------------------------------=0A/* scan.c */=0A=0A#i= nclude =0A=0Aint main()=0A{=0A=A0=A0=A0 int str[10];=0A=0A=A0=A0= =A0 if (scanf("%s", str) > 0)=0A=A0=A0=A0 =A0=A0=A0 printf("name %s\n", str= );=0A=0A=A0=A0=A0 return 0;=0A}=0A-----------------------------=0A> "dtrace= -n 'pid$target:::entry' -c scanf"=0A=0Aif you run the above dtrace command= on the program , dtrace will not exit and hung in input.=0A=0ARegards=0APr= ashanth=0A=0A=0A=0A=0A=0A=0AOn Tuesday, 12 November 2013 8:18 AM, Mark John= ston wrote:=0A =0AOn Tue, Nov 12, 2013 at 12:03:05PM +0= 800, Prashanth Kumar wrote:=0A> Hello, =0A> =0A> I had been doing some work= on the pid provider in Dtrace.=0A=0AHi Prashanth,=0A=0AI've been going thr= ough your patches and committing them as time permits.=0A=0A>=A0 I have mad= e a few modification=0A> =A0so that it will list all the functions used in = the program as seen in Solaris or MacOSX.=0A> =A0Presently in FreeBSD, you = have to name each functions you have to probe in the program. For=0A> =A0ex= ample "dtrace -n 'pid$target:program::entry' -c ./program" will list all th= e functions called=0A> =A0in the=0A program.This modification was made in l= ibproc library(proc_sym.c).=0A=0AThis has been fixed:=0A=0Ahttp://svnweb.fr= eebsd.org/base?view=3Drevision&revision=3D257300=0Ahttp://svnweb.freebsd.or= g/base?view=3Drevision&revision=3D258000=0A=0A> =0A> =A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 Also while creating probe points for return probe type, any fu= nction with more than one return=0A> =A0path will fail.This is because "fas= ttrap_probe_spec_t" type variable is not fully copied into the=0A> =A0kerne= l in fasttrap_ioctl() function.I have modified in line with Solaris code=0A= where the copying=A0 is=0A> =A0done manually by Dtrace, rather than the ke= rnel.(fasttap.c, fasttrap.h)=0A=0AI'm working on this one.=0A=0A> =A0Also i= n "fasttrap_pid_probe()" (fasttrap_isa.c) for the case of "FASTTRAP_T_PUSHL= _EBP", the ebp register=0A> =A0has to be copied to the stack not esp.=0A> = =A0=A0=A0=A0=A0=A0=A0 I had attached the patch files for review.=0A=0AThis = has been fixed:=0A=0Ahttp://svnweb.freebsd.org/base?view=3Drevision&revisio= n=3D257679=0Ahttp://svnweb.freebsd.org/base?view=3Drevision&revision=3D2571= 43=0A=0A> =0A> =A0One other issue i noticed is that if the program being tr= aced uses Thread Local Storage than=0A> =A0for the case of entry probe, it = will hang in ___tls_get_addr function in ld-elf.so.=0A> =A0If you use scanf= or fscanf in your program you can notice this behaviour. This i believe is= due to=0A> =A0Dtrace using gs segment register to point to the scratch spa= ce, and TLS also loading the thread variable=0A> =A0from gs register.=0A=0A= I haven't been able to reproduce this one yet. If you can send me a=0Aprogr= am and D script that does the trick, that'd be very helpful.=0A=0A> =0A> = =A0if you change the following code in fasttrap_isa.c=0A> =A0=0A> =A0= #ifdef __i386__=0A> =A0=A0=A0=A0=A0=A0=A0=A0 addr =3D USD_GETBASE(&curthrea= d->td_pcb->pcb_gsd);=0A> =A0#else=0A> =A0=A0=A0=A0=A0=A0=A0=A0 addr =3D cur= thread->td_pcb->pcb_gsbase;=0A> =A0#endif=0A> =A0=A0=A0=A0=A0=A0=A0=A0 addr= +=3D sizeof (void *);=A0 =A0=0A> =A0=0A> =0A> =A0to=0A> =0A> =A0=0A> =A0#ifdef __i386__=0A> =A0=A0=A0=A0=A0=A0=A0=A0 addr =3D USD_GETBAS= E(&curthread->td_pcb->pcb_gsd);=0A> =A0#else=0A> =A0=A0=A0=A0=A0=A0=A0=A0 a= ddr =3D curthread->td_pcb->pcb_gsbase;=0A> =A0#endif=0A>=0A =A0=A0=A0=A0=A0= =A0=A0=A0 addr +=3D sizeof (void *) * 3;=A0 =A0=0A> =A0=0A> =0A> =A0= the Dtrace will not hang. I am not sure what is happening here and=0A> =A0w= hether this is the correct solution.=0A=0ANeither am I. :)=0A=0A=0A> =A0Thi= s changes were made in FreeBSD 9.2-386-RELEASE. I applied the above patches= on=0A> =A0FreeBSD 10-BETA (with some manual work) and it was still working= .=0A> _______________________________________________=0A> freebsd-dtrace@fr= eebsd.org mailing list=0A> https://lists.freebsd.org/mailman/listinfo/freeb= sd-dtrace=0A> To unsubscribe, send any mail to "freebsd-dtrace-unsubscribe@= freebsd.org=0A" From owner-freebsd-dtrace@FreeBSD.ORG Tue Nov 12 16:01:19 2013 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 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B05BB4ED for ; Tue, 12 Nov 2013 16:01:19 +0000 (UTC) Received: from mail-qe0-x232.google.com (mail-qe0-x232.google.com [IPv6:2607:f8b0:400d:c02::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 782282775 for ; Tue, 12 Nov 2013 16:01:19 +0000 (UTC) Received: by mail-qe0-f50.google.com with SMTP id 1so5759453qee.9 for ; Tue, 12 Nov 2013 08:01:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=SQubBQr4FEjiygwLztQqXBTdycovjvRNRTjRECJ1YTM=; b=ul7PdNmKjHsCUb7oAg1iQnw+O4hN5rJqyYl0NwomP5bRHk4xgLYQ5vqNYeZK3pXNHs Cen1qIdKjps9heNfgkXzmpRAg1QTFievzpGtQMMfoHQejzfiYXtlzmN8wy/IkdlM6zbD sQHFB+yz4auWRHrNZu4xG0NaAdqGngUvMo7LoBaRir/i+o2UsoJVMIXi6BH2mChMuZq/ mWYk9/YjursiMROekwZl4lj1kbSHGpHW2K1H3eEmMjZSh24HdMGJFLGh8ZOz5voxyaCv eDkuf0Jqmak9U7P4V/58WveB7Ttlm0iUfugJXbbpQ0gTna35aW1CJhOMAq3nHx0xQ08I nFvg== MIME-Version: 1.0 X-Received: by 10.224.103.199 with SMTP id l7mr59542459qao.56.1384272078701; Tue, 12 Nov 2013 08:01:18 -0800 (PST) Received: by 10.224.160.77 with HTTP; Tue, 12 Nov 2013 08:01:18 -0800 (PST) Date: Wed, 13 Nov 2013 00:01:18 +0800 Message-ID: Subject: bug in dtrace mips fbt From: Howard Su To: freebsd-dtrace@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.16 X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.16 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: Tue, 12 Nov 2013 16:01:19 -0000 I notice a small error in fbt provider of mips. In file: cddl/dev/fbt/powerpc.c 222: limit = (u_int32_t *) symval->value + symval->size; this should be limit = (u_int32_t *) ((u_int8_t*)symval->value + symval->size); I don't have powerpc to test. anyone can test this and fix it? -Howard -- -Howard From owner-freebsd-dtrace@FreeBSD.ORG Fri Nov 15 20:31:29 2013 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 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 390ABA5C for ; Fri, 15 Nov 2013 20:31:29 +0000 (UTC) Received: from mail-wi0-x234.google.com (mail-wi0-x234.google.com [IPv6:2a00:1450:400c:c05::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BB15C2379 for ; Fri, 15 Nov 2013 20:31:28 +0000 (UTC) Received: by mail-wi0-f180.google.com with SMTP id ey16so1546600wid.1 for ; Fri, 15 Nov 2013 12:31:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=K1+2rCBz1hRILTxWCab00jXoyZaf2K26ZJtLSCiKTBs=; b=eO9ZdSIGAw96lOdw+NOIYQ9cqacs63mPmdAXIsi520IgumYyCV2LUsyKxzTIAyuHLA HYLKEEJzRGYMowdSUhqNQhzRWiIRnUKs8zcLZcNbmUCRid7kVumxcQSluKVR9In/7PK1 ZAvDMqTIqk7MiAHi9vhBzO+CGYsYbyLj9ywZ6aQUV4dGPb+hfyJFCfugK+0OTjD0MtkT 2RfD/wf1s6NPg9Qrd3EtTUThqr92E6xxjDqzCAyYv2TKZ7S8JkwOrpOX2jlc+kQWwf1A rChZirqE/RwSm+7NAxokrSyz+lKeaD4XzObcpAyMeC6m8/CJy01Bk2hbB9awJaKTe9Ci nV0w== MIME-Version: 1.0 X-Received: by 10.194.104.42 with SMTP id gb10mr8213166wjb.16.1384547487121; Fri, 15 Nov 2013 12:31:27 -0800 (PST) Sender: asomers@gmail.com Received: by 10.194.171.35 with HTTP; Fri, 15 Nov 2013 12:31:26 -0800 (PST) Date: Fri, 15 Nov 2013 13:31:26 -0700 X-Google-Sender-Auth: rPpo5rHhohR-CAmdGqBayFoBG3E Message-ID: Subject: Please review: fix panics on kldload/kldunload fasttrap From: Alan Somers To: freebsd-dtrace@freebsd.org Content-Type: multipart/mixed; boundary=047d7bf19852253f9a04eb3d15ee X-Content-Filtered-By: Mailman/MimeDel 2.1.16 X-BeenThere: freebsd-dtrace@freebsd.org X-Mailman-Version: 2.1.16 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: Fri, 15 Nov 2013 20:31:29 -0000 --047d7bf19852253f9a04eb3d15ee Content-Type: text/plain; charset=ISO-8859-1 I've found a few problems with fasttrap that can cause panics on kldload and kldunload. Can someone please review this patch? I've also attached an ATF test case for it. The test case loads and unloads the fasttrap module 500 times while several sh processes are forking, execing, and exiting at about 600 times/second/cpu. * kproc_create(fasttrap_pid_cleanup_cb, ...) gets called before fasttrap_provs.fth_table gets allocated. This can lead to a panic on module load, because fasttrap_pid_cleanup_cb references fasttrap_provs.fth_table. My patch moves kproc_create down after the point that fasttrap_provs.fth_table gets allocated, and modifies the error handling accordingly. * dtrace_fasttrap_{fork,exec,exit} weren't getting NULLed until after fasttrap_provs.fth_table got freed. That caused panics on module unload because fasttrap_exec_exit calls fasttrap_provider_retire, which references fasttrap_provs.fth_table. My patch NULLs those function pointers earlier. * There isn't any code to destroy the fasttrap_{tpoints,provs,procs}.fth_table mutexes on module unload, leading to a resource leak when WITNESS is enabled. My patch destroys those mutexes during fasttrap_unload(). -Alan --047d7bf19852253f9a04eb3d15ee Content-Type: text/plain; charset=US-ASCII; name="fasttrap_unload.diff" Content-Disposition: attachment; filename="fasttrap_unload.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ho1vsow00 SW5kZXg6IHN5cy9jZGRsL2NvbnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9kdHJhY2UvZmFz dHRyYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvY2RkbC9jb250cmliL29wZW5zb2xhcmlzL3V0cy9j b21tb24vZHRyYWNlL2Zhc3R0cmFwLmMJKHJldmlzaW9uIDI1NzgwMykKKysrIHN5cy9jZGRsL2Nv bnRyaWIvb3BlbnNvbGFyaXMvdXRzL2NvbW1vbi9kdHJhY2UvZmFzdHRyYXAuYwkod29ya2luZyBj b3B5KQpAQCAtMjI4NCwxMyArMjI4NCw2IEBACiAJbXV0ZXhfaW5pdCgmZmFzdHRyYXBfY291bnRf bXR4LCAiZmFzdHRyYXAgY291bnQgbXR4IiwgTVVURVhfREVGQVVMVCwKIAkgICAgTlVMTCk7CiAK LQlyZXQgPSBrcHJvY19jcmVhdGUoZmFzdHRyYXBfcGlkX2NsZWFudXBfY2IsIE5VTEwsCi0JICAg ICZmYXN0dHJhcF9jbGVhbnVwX3Byb2MsIDAsIDAsICJmdGNsZWFudXAiKTsKLQlpZiAocmV0ICE9 IDApIHsKLQkJZGVzdHJveV9kZXYoZmFzdHRyYXBfY2Rldik7Ci0JCXJldHVybiAocmV0KTsKLQl9 Ci0KICNpZiBkZWZpbmVkKHN1bikKIAlmYXN0dHJhcF9tYXggPSBkZGlfZ2V0cHJvcChERElfREVW X1RfQU5ZLCBkZXZpLCBERElfUFJPUF9ET05UUEFTUywKIAkgICAgImZhc3R0cmFwLW1heC1wcm9i ZXMiLCBGQVNUVFJBUF9NQVhfREVGQVVMVCk7CkBAIC0yMzQ0LDYgKzIzMzcsMjQgQEAKIAkJICAg ICJwcm92aWRlcnMgYnVja2V0IG10eCIsIE1VVEVYX0RFRkFVTFQsIE5VTEwpOwogI2VuZGlmCiAK KwlyZXQgPSBrcHJvY19jcmVhdGUoZmFzdHRyYXBfcGlkX2NsZWFudXBfY2IsIE5VTEwsCisJICAg ICZmYXN0dHJhcF9jbGVhbnVwX3Byb2MsIDAsIDAsICJmdGNsZWFudXAiKTsKKwlpZiAocmV0ICE9 IDApIHsKKwkJZGVzdHJveV9kZXYoZmFzdHRyYXBfY2Rldik7CisjaWYgIWRlZmluZWQoc3VuKQor CQlmb3IgKGkgPSAwOyBpIDwgZmFzdHRyYXBfcHJvdnMuZnRoX25lbnQ7IGkrKykKKwkJCW11dGV4 X2Rlc3Ryb3koJmZhc3R0cmFwX3Byb3ZzLmZ0aF90YWJsZVtpXS5mdGJfbXR4KTsKKwkJZm9yIChp ID0gMDsgaSA8IGZhc3R0cmFwX3Rwb2ludHMuZnRoX25lbnQ7IGkrKykKKwkJCW11dGV4X2Rlc3Ry b3koJmZhc3R0cmFwX3Rwb2ludHMuZnRoX3RhYmxlW2ldLmZ0Yl9tdHgpOworI2VuZGlmCisJCWtt ZW1fZnJlZShmYXN0dHJhcF9wcm92cy5mdGhfdGFibGUsIGZhc3R0cmFwX3Byb3ZzLmZ0aF9uZW50 ICoKKwkJICAgIHNpemVvZiAoZmFzdHRyYXBfYnVja2V0X3QpKTsKKwkJbXR4X2Rlc3Ryb3koJmZh c3R0cmFwX2NsZWFudXBfbXR4KTsKKwkJbXV0ZXhfZGVzdHJveSgmZmFzdHRyYXBfY291bnRfbXR4 KTsKKwkJcmV0dXJuIChyZXQpOworCX0KKworCiAJLyoKIAkgKiAuLi4gYW5kIHRoZSBwcm9jcyBo YXNoIHRhYmxlLgogCSAqLwpAQCAtMjQzNiw2ICsyNDQ3LDIwIEBACiAJCXJldHVybiAoLTEpOwog CX0KIAorCS8qCisJICogU3RvcCBuZXcgcHJvY2Vzc2VzIGZyb20gZW50ZXJpbmcgdGhlc2UgaG9v a3Mgbm93LCBiZWZvcmUgdGhlCisJICogZmFzdHRyYXBfY2xlYW51cCB0aHJlYWQgcnVucy4gIFRo YXQgd2F5IGFsbCBwcm9jZXNzZXMgd2lsbCBob3BlZnVsbHkKKwkgKiBiZSBvdXQgb2YgdGhlc2Ug aG9va3MgYmVmb3JlIHdlIGZyZWUgZmFzdHRyYXBfcHJvdnMuZnRoX3RhYmxlCisJICovCisJQVNT RVJUKGR0cmFjZV9mYXN0dHJhcF9mb3JrID09ICZmYXN0dHJhcF9mb3JrKTsKKwlkdHJhY2VfZmFz dHRyYXBfZm9yayA9IE5VTEw7CisKKwlBU1NFUlQoZHRyYWNlX2Zhc3R0cmFwX2V4ZWMgPT0gJmZh c3R0cmFwX2V4ZWNfZXhpdCk7CisJZHRyYWNlX2Zhc3R0cmFwX2V4ZWMgPSBOVUxMOworCisJQVNT RVJUKGR0cmFjZV9mYXN0dHJhcF9leGl0ID09ICZmYXN0dHJhcF9leGVjX2V4aXQpOworCWR0cmFj ZV9mYXN0dHJhcF9leGl0ID0gTlVMTDsKKwogCW10eF9sb2NrKCZmYXN0dHJhcF9jbGVhbnVwX210 eCk7CiAJZmFzdHRyYXBfY2xlYW51cF9kcmFpbiA9IDE7CiAJLyogV2FpdCBmb3IgdGhlIGNsZWFu dXAgdGhyZWFkIHRvIGZpbmlzaCB1cCBhbmQgc2lnbmFsIHVzLiAqLwpAQCAtMjQ1MSw2ICsyNDc2 LDE0IEBACiAJbXV0ZXhfZXhpdCgmZmFzdHRyYXBfY291bnRfbXR4KTsKICNlbmRpZgogCisjaWYg IWRlZmluZWQoc3VuKQorCWZvciAoaSA9IDA7IGkgPCBmYXN0dHJhcF90cG9pbnRzLmZ0aF9uZW50 OyBpKyspCisJCW11dGV4X2Rlc3Ryb3koJmZhc3R0cmFwX3Rwb2ludHMuZnRoX3RhYmxlW2ldLmZ0 Yl9tdHgpOworCWZvciAoaSA9IDA7IGkgPCBmYXN0dHJhcF9wcm92cy5mdGhfbmVudDsgaSsrKQor CQltdXRleF9kZXN0cm95KCZmYXN0dHJhcF9wcm92cy5mdGhfdGFibGVbaV0uZnRiX210eCk7CisJ Zm9yIChpID0gMDsgaSA8IGZhc3R0cmFwX3Byb2NzLmZ0aF9uZW50OyBpKyspCisJCW11dGV4X2Rl c3Ryb3koJmZhc3R0cmFwX3Byb2NzLmZ0aF90YWJsZVtpXS5mdGJfbXR4KTsKKyNlbmRpZgogCWtt ZW1fZnJlZShmYXN0dHJhcF90cG9pbnRzLmZ0aF90YWJsZSwKIAkgICAgZmFzdHRyYXBfdHBvaW50 cy5mdGhfbmVudCAqIHNpemVvZiAoZmFzdHRyYXBfYnVja2V0X3QpKTsKIAlmYXN0dHJhcF90cG9p bnRzLmZ0aF9uZW50ID0gMDsKQEAgLTI0NjMsMjIgKzI0OTYsNiBAQAogCSAgICBmYXN0dHJhcF9w cm9jcy5mdGhfbmVudCAqIHNpemVvZiAoZmFzdHRyYXBfYnVja2V0X3QpKTsKIAlmYXN0dHJhcF9w cm9jcy5mdGhfbmVudCA9IDA7CiAKLQkvKgotCSAqIFdlIGtub3cgdGhlcmUgYXJlIG5vIHRyYWNl cG9pbnRzIGluIGFueSBwcm9jZXNzIGFueXdoZXJlIGluCi0JICogdGhlIHN5c3RlbSBzbyB0aGVy ZSBpcyBubyBwcm9jZXNzIHdoaWNoIGhhcyBpdHMgcF9kdHJhY2VfY291bnQKLQkgKiBncmVhdGVy IHRoYW4gemVybywgdGhlcmVmb3JlIHdlIGtub3cgdGhhdCBubyB0aHJlYWQgY2FuIGFjdGl2ZWx5 Ci0JICogYmUgZXhlY3V0aW5nIGNvZGUgaW4gZmFzdHRyYXBfZm9yaygpLiBTaW1pbGFybHkgZm9y IHBfZHRyYWNlX3Byb2JlcwotCSAqIGFuZCBmYXN0dHJhcF9leGVjKCkgYW5kIGZhc3R0cmFwX2V4 aXQoKS4KLQkgKi8KLQlBU1NFUlQoZHRyYWNlX2Zhc3R0cmFwX2ZvcmsgPT0gJmZhc3R0cmFwX2Zv cmspOwotCWR0cmFjZV9mYXN0dHJhcF9mb3JrID0gTlVMTDsKLQotCUFTU0VSVChkdHJhY2VfZmFz dHRyYXBfZXhlYyA9PSAmZmFzdHRyYXBfZXhlY19leGl0KTsKLQlkdHJhY2VfZmFzdHRyYXBfZXhl YyA9IE5VTEw7Ci0KLQlBU1NFUlQoZHRyYWNlX2Zhc3R0cmFwX2V4aXQgPT0gJmZhc3R0cmFwX2V4 ZWNfZXhpdCk7Ci0JZHRyYWNlX2Zhc3R0cmFwX2V4aXQgPSBOVUxMOwotCiAjaWYgIWRlZmluZWQo c3VuKQogCWRlc3Ryb3lfZGV2KGZhc3R0cmFwX2NkZXYpOwogCW11dGV4X2Rlc3Ryb3koJmZhc3R0 cmFwX2NvdW50X210eCk7Cg== --047d7bf19852253f9a04eb3d15ee--