Re: request to add trace off and trace on with events

From: Tim Bird
Date: Mon Apr 19 2010 - 16:57:21 EST


On 04/19/2010 01:44 PM, Steven Rostedt wrote:
> On Mon, 2010-04-19 at 13:39 -0700, Tim Bird wrote:
>> On 04/19/2010 01:04 PM, Steven Rostedt wrote:
>>> Hi Tom,
>>>
>>> Could you add a way to do a call to tracing_on() or tracing_off() via
>>> the filters. I would like to do something like:
>>>
>>>
>>> echo 'if (pid == 1234) traceoff' > events/sched/sched_wakeup/filter
>>>
>>> Where, if the sched_wakeup event is hit with pid == 1234 it will turn
>>> tracing off.
>>
>> Just a comment on the nomenclature. In KFT I called
>> things like this "triggers". I'm not sure what other
>
> Yeah, Mathieu calls them triggers too. But if you do, I'm fine with
> calling them that as well.
>
>> tracing systems call them. I'm a little worried about
>> overloading the filtering abstraction with trigger
>> semantics. (I like the idea of triggers, but it might
>> be better to control them with another pseudo-file for
>> clarity.)
>>
>> I suppose both are a form of conditional execution.
>> Filtering has an implicit action of either 'trace this'
>> or 'don't trace this', while triggering usually has
>> an action, often explicit, to start or stop tracing.
>> However, since they both use the conditional testing,
>> it might be a pain to reproduce this code for a different
>> pseudo-file.
>
> I thought about a separate file, but I like the idea of having control
> over them. We could add a "trigger" file too, but I'm not sure if that
> would be any clearer.

I'm not sure either. In general I dislike proliferating
pseudo-files. But if the tracing filter conditional is
different from the trigger conditional, it might be needed
to have something separate.

In KFT there were some non-event related trigger conditionals,
like - start tracing after 20 milliseconds and stop after
80 milliseconds.

Another thing I considered for KFT triggers, but didn't get
around to implementing, was countdown triggers - such as
"start tracing on the 5th execution of do_fork".

With the function or function_graph tracer, since the buffer
overflows quickly, these kinds of triggered trace starts and stops
can help pinpoint the data you need.

Okay - that's probably 4 cents now. :-)
-- Tim

=============================
Tim Bird
Architecture Group Chair, CE Linux Forum
Senior Staff Engineer, Sony Network Entertainment
=============================

--
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/