Re: [PATCH v3 01/10] tracing: Update cond flag when enabling or disabling a trigger

From: Tom Zanussi
Date: Mon Jun 29 2015 - 16:26:12 EST


On Fri, 2015-06-12 at 14:01 -0400, Steven Rostedt wrote:
> Why v3 in the subject?
>

It was v3 of the patch he sent, which came at about v4 of the original
patchset. I guess that just causes confusion, so I'll keep the version
numbers the same for a patchset.

> On Mon, 8 Jun 2015 16:32:00 -0500
> Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx> wrote:
>
> > When a trigger is enabled, the cond flag should be set beforehand,
> > otherwise a trigger that's expecting to process a trace record
> > (e.g. one with post_trigger set) could be invoked without one.
> >
> > Likewise a trigger's cond flag should be reset after it's disabled,
> > not before.
> >
> > Signed-off-by: Tom Zanussi <tom.zanussi@xxxxxxxxxxxxxxx>
> > Signed-off-by: Daniel Wagner <daniel.wagner@xxxxxxxxxxxx>
>
> Why is Daniel signed off by here?
>

Daniel sent me the original problem report and attempt at a patch - I
started from that but fixed it up but still wanted to give him credit.
>From now on, I'll keep follow-ons separate (it's kind of unusual to have
people sending patches for patchsets still under review, so wasn't sure
about that).

Tom

> -- Steve
>
> > ---
> > kernel/trace/trace_events_trigger.c | 10 ++++++----
> > 1 file changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c
> > index 42a4009..4d2f3cc 100644
> > --- a/kernel/trace/trace_events_trigger.c
> > +++ b/kernel/trace/trace_events_trigger.c
> > @@ -543,11 +543,12 @@ static int register_trigger(char *glob, struct event_trigger_ops *ops,
> > list_add_rcu(&data->list, &file->triggers);
> > ret++;
> >
> > + update_cond_flag(file);
> > if (trace_event_trigger_enable_disable(file, 1) < 0) {
> > list_del_rcu(&data->list);
> > + update_cond_flag(file);
> > ret--;
> > }
> > - update_cond_flag(file);
> > out:
> > return ret;
> > }
> > @@ -575,8 +576,8 @@ static void unregister_trigger(char *glob, struct event_trigger_ops *ops,
> > if (data->cmd_ops->trigger_type == test->cmd_ops->trigger_type) {
> > unregistered = true;
> > list_del_rcu(&data->list);
> > - update_cond_flag(file);
> > trace_event_trigger_enable_disable(file, 0);
> > + update_cond_flag(file);
> > break;
> > }
> > }
> > @@ -1319,11 +1320,12 @@ static int event_enable_register_trigger(char *glob,
> > list_add_rcu(&data->list, &file->triggers);
> > ret++;
> >
> > + update_cond_flag(file);
> > if (trace_event_trigger_enable_disable(file, 1) < 0) {
> > list_del_rcu(&data->list);
> > + update_cond_flag(file);
> > ret--;
> > }
> > - update_cond_flag(file);
> > out:
> > return ret;
> > }
> > @@ -1344,8 +1346,8 @@ static void event_enable_unregister_trigger(char *glob,
> > (enable_data->file == test_enable_data->file)) {
> > unregistered = true;
> > list_del_rcu(&data->list);
> > - update_cond_flag(file);
> > trace_event_trigger_enable_disable(file, 0);
> > + update_cond_flag(file);
> > break;
> > }
> > }
>


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