Thread (13 messages) 13 messages, 2 authors, 2018-09-19

Re: [PATCH v4 8/8] trace: Add alternative synthetic event trace action syntax

From: Tom Zanussi <zanussi@kernel.org>
Date: 2018-09-19 16:33:18
Also in: lkml

Hi Masami,

On Wed, 2018-09-19 at 08:54 +0900, Masami Hiramatsu wrote:
Hi Tom,

On Tue, 18 Sep 2018 14:16:43 -0500
Tom Zanussi [off-list ref] wrote:
quoted
Hi Masami,

On Wed, 2018-09-19 at 03:54 +0900, Masami Hiramatsu wrote:
quoted
Hi Tom,

On Mon, 10 Sep 2018 14:10:46 -0500
Tom Zanussi [off-list ref] wrote:
quoted
From: Tom Zanussi <redacted>

Add a 'trace(synthetic_event_name, params)' alternative to
synthetic_event_name(params).

Currently, the syntax used for generating synthetic events is
to
invoke synthetic_event_name(params) i.e. use the synthetic
event
name
as a function call.

Users requested a new form that more explicitly shows that the
synthetic event is in effect being traced.  In this version, a
new
'trace()' keyword is used, and the synthetic event name is
passed
in
as the first argument.
Hmm, what is the advantage of adding this new form?
There's no real advantage other than user preference - Namhyung
thought
that since the event-name-as-function-call actions are all defined
as
ACTION_TRACE, there should also be an explicit 'trace' action.
Ah, got it. Would this needs documentation and testcase update too?
The first part of the patch does contain the Documentation change to
trace/histograms.txt.

But I didn't do a testcase for it, will do that in the next iteration.
quoted
So I added it as alternative syntax - the event-name-as-function-
call
form remains unchanged.

By the way, I also have a patch implementing your alternative
syntax
change, where if you have only one handler, you can do away with
the
explicit action.handler form e.g.

  # echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-ts0: 
\
    onmax($wakeup_lat): \
    save(next_prio,next_comm,prev_pid,prev_prio,prev_comm):snapshot
() \
Hmm, in this case, I think comma-connected syntax will be clearer
when
the action is kicked.

     onmax($wakeup_lat).save(next_prio,next_comm,prev_pid,prev_prio,p
rev_comm),snapshot()

any thought?
With the above I was trying to implement something close to your
original suggestion of:

<actions> onchange(<var>)

So what I described was:

<actions>:onchange(<var>)

where <actions> would expand to action1[:action2:..]

But as I mentioned both only make sense if you only have one
onchange(<var>).

Your new version:

onchange(<var>).action1[,action2,..]

is probably better as it would allow for multiple onchange<var> and/or
other handlers.

Thanks,

Tom
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help