Messages in this thread | | | Date | Thu, 10 Dec 2009 17:16:05 +0100 | From | Ingo Molnar <> | Subject | Re: [PATCH 2/4] ftrace - add function_duration tracer |
| |
* Steven Rostedt <rostedt@goodmis.org> wrote:
> On Thu, 2009-12-10 at 13:03 +0100, Frederic Weisbecker wrote: > > > This makes me feel I'm going to try converting the function graph > > tracer into an event during the next cycle. It does not mean I could > > make it usable as a perf event right away in the same shot that > > said, as you can guess this is not a trivial plug. The current perf > > fast path is not yet adapted for that. > > I curious how you plan on doing this. The current event system shows > one event per trace point. A straight forward approach would make > every entry and exit of a function a trace point and that would lead > to a very large kernel to handle that. > > Perhaps we could abstract out all entries and exits. We need to be > able to link to a single point (entry or exit) not all. This also has > the added issue of using the ftrace infrastructure of nop the mcount > call. We also need a way to enable a set of functions.
I think a good solution would be what i suggested (and what the patch i sent does in essence), i.e. to add a special software event for functions:
PERF_COUNT_SW_FUNCTION_CALLS
Next step would be to extend the ioctl interface to allow per function tracepoints to be turned on/off (and set other per function attributes). The attributes would be system-wide (at least initially) - we dont want to live patch functions at context switch time.
We'd basically keep the function tracer, just re-wire it somewhat and expose it via the unified interface and make it available to a much larger set of usecases.
Ingo
| |