Re: building async-calls

From: Adrian Chadd <adrian@dont-contact.us>
Date: Mon, 17 Dec 2007 14:10:06 +0900

On Mon, Dec 17, 2007, Amos Jeffries wrote:

> this?
> http://wiki.squid-cache.org/LinuxOprofile

Yup.

> > I've been meaning to write a shim or two to overload the -pg feature in
> > GCC -
> > it'll call your function enter/exit stubs with some stack information -
> > so I can generate call graphs inside Squid without having to do the
> > inaccurate
> > gprof time profiling.
>
> That went right over my head, all but the 'expensive ... time profiling'
> which kind of sticks to something from wayback.

Well, gprof gives you two things - time spent in routines and callgraphs/call counts.
The time spent in routines isn't accurate at all nowdays, the sampling is intrusive
and not fast enough (it can only run as fast as the system timer allows.)

There's a flag to gcc which generates stubs calling these:

       -finstrument-functions
           Generate instrumentation calls for entry and exit to functions. Just after function entry and just before
           function exit, the following profiling functions will be called with the address of the current function and
           its call site. (On some platforms, "__builtin_return_address" does not work beyond the current function, so
           the call site information may not be available to the profiling functions otherwise.)

So what I'd like to do is implement my own call graphing stuff and use the system
performance counters to grab execution profiles.

(But thats a side project. Unrelated to this. :)

Adrian
Received on Sun Dec 16 2007 - 22:03:14 MST

This archive was generated by hypermail pre-2.1.9 : Mon Dec 31 2007 - 12:00:03 MST