Re: [PATCH 4/4] tracing/function-return-tracer: Support for dynamicftrace on function return tracer

From: Tim Bird
Date: Wed Nov 26 2008 - 13:24:33 EST


ï wrote:
> 2008/11/24 Steven Rostedt <rostedt@xxxxxxxxxxx>:
>> On Sun, 16 Nov 2008, Frederic Weisbecker wrote:
>>> static void ftrace_replace_code(int enable)
>>> @@ -1405,10 +1417,17 @@ int register_ftrace_function(struct ftrace_ops *ops)
>>> return -1;
>>>
>>> mutex_lock(&ftrace_sysctl_lock);
>>> +
>>> + if (ftrace_tracing_type == FTRACE_TYPE_RETURN) {
>>> + ret = -EBUSY;
>>> + goto out;
>>> + }
>>> +
>> Why do we need to disable all new tracing functions when we do return
>> tracing??
>>
>> -- Steve
>>
>>> ret = __register_ftrace_function(ops);
>>> ftrace_startup();
>>> - mutex_unlock(&ftrace_sysctl_lock);
>>>
>>> +out:
>>> + mutex_unlock(&ftrace_sysctl_lock);
>>> return ret;
>>> }
>>>
>
> You will see the same test when trying to register a return handler,
> it verifies that normal ftrace is not running.
> Otherwise it will fail.
> I made ftrace and ftrace-return not abled to work simultaneously for the moment.
> That made the integration of ftrace-return into dynamic tracing much
> more simpler...
>
> But if someone needs to enable both tracing at the same time, I can change it...

Very sorry I'm coming to this thread late. I didn't notice it until
today.

Not to question the whole approach, and sorry if this was
discussed before, but why wasn't -finstrument-functions used
to instrument the function exits. This worked well for KFT
(See http://elinux.org/Kernel_Function_Trace). I'm not sure if the
function prologue and epilogue modifications done by -mcount are
different than -finstrument-functions, but I thought I remember something
about Steven testing -finstrument-functions in an early version of ftrace.

By the way, I'm really excited to see this "function_cost" stuff being
worked on. It has proven to be extremely useful for analyzing early boot
latencies at Sony.

Sorry again I didn't catch this and previous related threads
earlier. I have some post-processing tools which might be useful here.
Also, I've found it very handy to have the capability to filter by minimum
function duration. Is there any work to do that with the
current system. If not, maybe I could take a look at that and see if
I can add something.

Regards,
-- Tim


=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Corporation of America
=============================

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/