Michael Schuster - Sun Microsystems
2006-Jun-30 08:21 UTC
[dtrace-discuss] Qs. on fbt::copystr: probe
Hi all, I have questions about something I observed just now: 1) on AMD64, S10u1: # dtrace -n ''fbt::copystr:entry{printf ("%p\n", args[0]);}'' -c /bin/pwd dtrace: invalid probe specifier fbt::copystr:entry{printf ("%p\n", args[0]);}: in action list: index 0 is out of range for fbt::copystr:entry args[ ] but # dtrace -n ''fbt::copystr:entry{printf ("%p\n", arg0);}'' -c /bin/pwd dtrace: description ''fbt::copystr:entry'' matched 1 probe / dtrace: pid 15264 has exited CPU ID FUNCTION:NAME 1 8091 copystr:entry ffffffff80d05000 [...] Q: Is the fact that copystr is an assembly function the reason that the typed arguments are not known to DTrace? 2) on Sparc, snv_42 (also on S10) # dtrace -n ''fbt::copystr:entry{printf ("%p\n", args[0]);}'' -c /bin/pwd dtrace: invalid probe specifier fbt::copystr:entry{printf ("%p\n", args[0]);}: probe description fbt::copystr:entry does not match any probes Q: how come this probe is present on AMD64 but not on Sparc? TIA Michael -- Michael Schuster (+49 89) 46008-2974 / x62974 visit the online support center: http://www.sun.com/osc/ Recursion, n.: see ''Recursion''
On Jun 30, 2006, at 1:21 AM, Michael Schuster - Sun Microsystems wrote:> Hi all, > > I have questions about something I observed just now: > > 1) on AMD64, S10u1: > # dtrace -n ''fbt::copystr:entry{printf ("%p\n", args[0]);}'' -c /bin/ > pwd > dtrace: invalid probe specifier fbt::copystr:entry{printf ("%p\n", > args[0]);}: in action list: index 0 is out of range for > fbt::copystr:entry args[ ] > > but > > # dtrace -n ''fbt::copystr:entry{printf ("%p\n", arg0);}'' -c /bin/pwd > dtrace: description ''fbt::copystr:entry'' matched 1 probe > / > dtrace: pid 15264 has exited > CPU ID FUNCTION:NAME > 1 8091 copystr:entry ffffffff80d05000 > > [...] > > Q: Is the fact that copystr is an assembly function the reason that > the typed arguments are not known to DTrace? > > 2) on Sparc, snv_42 (also on S10) > > # dtrace -n ''fbt::copystr:entry{printf ("%p\n", args[0]);}'' -c /bin/ > pwd > dtrace: invalid probe specifier fbt::copystr:entry{printf ("%p\n", > args[0]);}: probe description fbt::copystr:entry does not match any > probes > > Q: how come this probe is present on AMD64 but not on Sparc? >My best guess at a time when I should already be asleep, copystr on amd64 is a normal function that starts with saving its stack (pushq). On SPARC, it''s a leaf function (no save and and a retl). Ref: http://cvs.opensolaris.org/source/search?&defs=copystr&path=uts> TIA > Michael > -- > Michael Schuster (+49 89) 46008-2974 / x62974 > visit the online support center: http://www.sun.com/osc/ > > Recursion, n.: see ''Recursion'' > _______________________________________________ > dtrace-discuss mailing list > dtrace-discuss at opensolaris.org
On Fri, Jun 30, 2006 at 10:21:16AM +0200, Michael Schuster - Sun Microsystems wrote:> I have questions about something I observed just now: > [...] > > Q: Is the fact that copystr is an assembly function the reason that the > typed arguments are not known to DTrace?Yes.> 2) on Sparc, snv_42 (also on S10) > > # dtrace -n ''fbt::copystr:entry{printf ("%p\n", args[0]);}'' -c /bin/pwd > dtrace: invalid probe specifier fbt::copystr:entry{printf ("%p\n", > args[0]);}: probe description fbt::copystr:entry does not match any probes > > Q: how come this probe is present on AMD64 but not on Sparc?On SPARC it''s a leaf routine. We can''t determine that it''s safe to instrument it so we don''t provide probes for that function. Adam -- Adam Leventhal, Solaris Kernel Development http://blogs.sun.com/ahl