If you're optimiznig link-time code placement I would think you'd just need a 
set of caller-callee relationships along with their frequency?

If this is the case, just track function callers and make that part of the 
aggregation:

pid$target:library::entry
{
        @a[usym(ucaller),probefunc] = count();
}

Running that on bash during an 'ls' gives the following output (just the last 
few lines):

bash`0x3a94c hash_search 40
bash`hash_search hash_string 46
libc.so.1`rw_write_held no_preempt 67
libc.so.1`rw_write_held preempt 67
bash`sh_xmalloc sh_malloc 130

Regards,
Ryan

> I thought about this but how do I preserve the order
> of the function calls?
> 
> On Nov 13, 2009, at 7:33 AM, Jonathan Adams wrote:
> 
> > This is custom-fit for an aggregation.  Try:
> > 
> > pid$target:library::entry
> > {
> >     @a[probefunc] = min(timestamp);
> > }
> > 
> > The aggregation will automatically only keep one
> record per function per CPU,
> > which should significantly reduce the data traffic.
> > 
> > Cheers,
> > - jonathan
> > 
> 
> ---
> firefox for android!
> http://wagerlabs.com
> 
> _______________________________________________
> dtrace-discuss mailing list
> dtrace-discuss@opensolaris.org
-- 
This message posted from opensolaris.org
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to