Priya Krishnan
2009-Apr-20 14:34 UTC
[dtrace-discuss] is there a way to check if the Dtrace subsystem is aware of a new provider/probes
I am getting started in writing a provider for the iscsit (comstar). I think I have made all the appropriate mods to sdt.h, sdt_subr.c, iscsit files, Makefiles and created a new iscsit.d. I installed the archive built from my workspace (bfu''ed). I see that iscsit is loaded and svcs reports that the target is online # modinfo | grep iscsit 175 fffffffff8155000 16c30 98 1 iscsit (iSCSI Target) # svcs iscsi/target STATE STIME FMRI online 9:58:20 svc:/network/iscsi/target:default However I get a "dtrace: failed to match iscsit:::: No probe matches description" if I try to observe the newly added probe. The symbol table (nm utility) does not display the newly added probe. I know that the function which instruments the probe does get called. Can anyone suggest a way to check if the Dtrace subsystem is aware of the newly added probe and provide hints/tips on debugging why the probes are not loaded? thanks Priya
Adam Leventhal
2009-Apr-20 16:42 UTC
[dtrace-discuss] is there a way to check if the Dtrace subsystem is aware of a new provider/probes
On Mon, Apr 20, 2009 at 10:34:21AM -0400, Priya Krishnan wrote:> I am getting started in writing a provider for the iscsit (comstar). I > think I have made all the appropriate mods to sdt.h, sdt_subr.c, iscsit > files, Makefiles and created a new iscsit.d. I installed the archive built > from my workspace (bfu''ed). I see that iscsit is loaded and svcs reports > that the target is online > > # modinfo | grep iscsit > 175 fffffffff8155000 16c30 98 1 iscsit (iSCSI Target) > > # svcs iscsi/target > STATE STIME FMRI > online 9:58:20 svc:/network/iscsi/target:default > > However I get a "dtrace: failed to match iscsit:::: No probe matches > description" if I try to observe the newly added probe. > > The symbol table (nm utility) does not display the newly added probe. I > know that the function which instruments the probe does get called. > > Can anyone suggest a way to check if the Dtrace subsystem is aware of the > newly added probe and provide hints/tips on debugging why the probes are > not loaded?For kernel SDT if you perform an nm(1) of the actual kernel module you should see some symbols that begin with ''__dtrace''. That would be the first thing you should check to make sure you''re building the module properly. For example: $ nm /kernel/fs/nfs | grep dtrace [1901] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___io_done [1219] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___io_start [1163] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___vtrace_TR_RFSCALL_END [1586] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___vtrace_TR_RFSCALL_START ... Adam -- Adam Leventhal, Fishworks http://blogs.sun.com/ahl
Priya Krishnan
2009-Apr-20 18:08 UTC
[dtrace-discuss] is there a way to check if the Dtrace subsystem is aware of a new provider/probes
On 04/20/09 12:42, Adam Leventhal wrote:> On Mon, Apr 20, 2009 at 10:34:21AM -0400, Priya Krishnan wrote: > >> I am getting started in writing a provider for the iscsit (comstar). I >> think I have made all the appropriate mods to sdt.h, sdt_subr.c, iscsit >> files, Makefiles and created a new iscsit.d. I installed the archive built >> from my workspace (bfu''ed). I see that iscsit is loaded and svcs reports >> that the target is online >> >> # modinfo | grep iscsit >> 175 fffffffff8155000 16c30 98 1 iscsit (iSCSI Target) >> >> # svcs iscsi/target >> STATE STIME FMRI >> online 9:58:20 svc:/network/iscsi/target:default >> >> However I get a "dtrace: failed to match iscsit:::: No probe matches >> description" if I try to observe the newly added probe. >> >> The symbol table (nm utility) does not display the newly added probe. I >> know that the function which instruments the probe does get called. >> >> Can anyone suggest a way to check if the Dtrace subsystem is aware of the >> newly added probe and provide hints/tips on debugging why the probes are >> not loaded? >> > > For kernel SDT if you perform an nm(1) of the actual kernel module you should > see some symbols that begin with ''__dtrace''. That would be the first thing > you should check to make sure you''re building the module properly. For > example: > > $ nm /kernel/fs/nfs | grep dtrace > [1901] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___io_done > [1219] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___io_start > [1163] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___vtrace_TR_RFSCALL_END > [1586] | 0| 0|FUNC |GLOB |0 |UNDEF |__dtrace_probe___vtrace_TR_RFSCALL_START > ... > >Ah! ok...I think I have a name mismatch - named the provider iscsit while the probes are with iscsi thank you! -priya> Adam > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/dtrace-discuss/attachments/20090420/33ee196f/attachment.html>