[Mono-dev] [PATCH] Mono DTrace provider v3

Andreas Färber andreas.faerber at web.de
Tue Jun 3 16:49:16 EDT 2008


Hi Zoltan,

Thanks again for your feedback.

v2 has been tested to work on Solaris 10 5/08 i86, too, in the  
meantime. It requires the same workaround for the gc-end probe as  
OpenSolaris.


Am 03.06.2008 um 18:32 schrieb Zoltan Varga:

>  Wouldn't be easier to pass the DTRACE and DTRACEFLAGS arguments to  
> the
> prelink.sh script in Makefile.am as well, instead of creating it from
> an .in file ?

Done. This eliminates calling config.status after changes to the script.


> Other than that, I think this is ok to check in.

Has the issue of --enable-dtrace vs. --disable-dtrace been decided?  
There appeared to be a disagreement between Miguel and you, and there  
were no further comments.

One of Sun's DTrace developers writes that DTrace probes would work on  
earlier versions of Solaris as no-ops.
http://blogs.sun.com/ahl/entry/user_land_tracing_gets_better#comment-1148081088000
I don't have access to pre-10 Solaris systems to confirm this.
I verified it on OSX, by compiling a DTrace-enabled Hello World with  
gcc-3.3 and running it on both v10.5 and v10.3.9. So it would seem  
possible to enable DTrace support for the official Mono.framework 2.0,  
in case this was Miguel's thought.


> I still don't like
> the makefile changes,
> but at least they are inside an ifdef, so they won't break anything.

We have two options here. Either we commit the changes, allowing to  
improve them later. Or we commit only the Mac OS X part for now. As  
you like.


I've added new probes for the JIT, method-compile-begin and method- 
compile-end. The MONO_PROBE_METHOD_COMPILE_* macros I've defined to  
accept a MonoMethod* argument and to translate it to the final probe  
arguments there. This avoids code duplication in mini.c.
Note that my patch shows four returns not handled by Mono's profiler,  
for unsuccessful AOT generic sharing and for parts==1,2,3. Should that  
be fixed, or is it not necessary for some reason?


Signed-off-by: Andreas Faerber <andreas.faerber at web.de>

ChangeLog v3:

* dtrace-prelink.sh: Renamed (from dtrace-prelink.sh.in)
   Don't define AR, DTRACE, DTRACEFLAGS.
   Removed debug output.

* configure.in:
   Don't output dtrace-prelink.sh.
   Move DTrace section up, to after the big-arrays section.

* data/mono.d,
   mono/utils/dtrace.h,
   mono/mini/mini.c:
   Add new probes method-compile-{begin,end}.

* mono/metadata/Makefile.am,
   mono/mini/Makefile.am:
   dtrace-prelink.sh is now in $(top_srcdir).
   Pass AR, DTRACE, DTRACEFLAGS as environment variables to dtrace- 
prelink.sh.

Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DTrace-USDT-3.diff
Type: application/octet-stream
Size: 15286 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080603/b4cef555/attachment.obj 
-------------- next part --------------





More information about the Mono-devel-list mailing list