mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Tom Zanussi <tom.zanussi@linux.intel.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	tglx@linutronix.de, mhiramat@kernel.org, vedang.patel@intel.com,
	bigeasy@linutronix.de, joel.opensrc@gmail.com, joelaf@google.com,
	mathieu.desnoyers@efficios.com, baohong.liu@intel.com,
	rajvi.jingar@intel.com, linux-kernel@vger.kernel.org,
	linux-rt-users@vger.kernel.org, kernel-team@lge.com
Subject: Re: [PATCH v3 25/33] tracing: Allow whitespace to surround hist trigger filter
Date: Wed, 18 Oct 2017 12:00:44 +0900	[thread overview]
Message-ID: <20171018030044.GC11621@danjae.aot.lge.com> (raw)
In-Reply-To: <1507143917.14461.8.camel@tzanussi-mobl.amr.corp.intel.com>

Hi Tom,

On Wed, Oct 04, 2017 at 02:05:17PM -0500, Tom Zanussi wrote:
> Hi Steve,
> 
> On Wed, 2017-10-04 at 14:11 -0400, Steven Rostedt wrote:
> > On Fri, 22 Sep 2017 15:00:05 -0500
> > Tom Zanussi <tom.zanussi@linux.intel.com> wrote:
> > 
> > > The existing code only allows for one space before and after the 'if'
> > > specifying the filter for a hist trigger.  Add code to make that more
> > > permissive as far as whitespace goes.  Specifically, we want to allow
> > > spaces in the trigger itself now that we have additional syntax
> > > (onmatch/onmax) where spaces are more natural e.g. spaces after commas
> > > in param lists.
> > > 
> > > Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
> > > ---
> > >  kernel/trace/trace_events_hist.c | 24 +++++++++++++++++++-----
> > >  1 file changed, 19 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> > > index ba42fe2..431f2b2 100644
> > > --- a/kernel/trace/trace_events_hist.c
> > > +++ b/kernel/trace/trace_events_hist.c
> > > @@ -4857,7 +4857,7 @@ static int event_hist_trigger_func(struct event_command *cmd_ops,
> > >  	struct synth_event *se;
> > >  	const char *se_name;
> > >  	bool remove = false;
> > > -	char *trigger;
> > > +	char *trigger, *p;
> > >  	int ret = 0;
> > >  
> > >  	if (!param)
> > > @@ -4866,10 +4866,23 @@ static int event_hist_trigger_func(struct event_command *cmd_ops,
> > >  	if (glob[0] == '!')
> > >  		remove = true;
> > >  
> > > -	/* separate the trigger from the filter (k:v [if filter]) */
> > > -	trigger = strsep(&param, " \t");
> > > -	if (!trigger)
> > > -		return -EINVAL;
> > > +	/*
> > > +	 * separate the trigger from the filter (k:v [if filter])
> > > +	 * allowing for whitespace in the trigger
> > > +	 */
> > > +	trigger = param;
> > > +	p = strstr(param, " if");
> > > +	if (!p)
> > > +		p = strstr(param, "\tif");
> > > +	if (p) {
> > > +		if (p == trigger)
> > > +			return -EINVAL;
> > > +		param = p + 1;
> > > +		param = strstrip(param);
> > > +		*p = '\0';
> > > +		trigger = strstrip(trigger);
> > > +	} else
> > > +		param = NULL;
> > 
> > I think you forgot to update this:
> > 
> 
> I was going to but on closer inspection realized the simpler form
> wouldn't accomplish the same thing - the problem this is trying to solve
> is to allow bits of whitespace within the trigger (because we now have
> function-like syntax, which should allow whitespace after commas for
> instance) and separating the trigger from the filter ('if').  So we
> explicitly search for 'if' with preceding whitespace, which strsep won't
> accomplish.

What if a field name is started with 'if' (like "ifb")?  I think you
also need to check whitespace after the 'if'.

Thanks,
Namhyung

  parent reply	other threads:[~2017-10-18  3:03 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-22 19:59 [PATCH v3 00/33] tracing: Inter-event (e.g. latency) support Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 01/33] tracing: Add support to detect and avoid duplicates Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 02/33] tracing: Remove code which merges duplicates Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 03/33] ring-buffer: Add interface for setting absolute time stamps Tom Zanussi
2017-10-04 17:14   ` Steven Rostedt
2017-10-05 11:34     ` Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 04/33] ring-buffer: Redefine the unimplemented RINGBUF_TIME_TIME_STAMP Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 05/33] tracing: Give event triggers access to ring_buffer_event Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 06/33] tracing: Add ring buffer event param to hist field functions Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 07/33] tracing: Break out hist trigger assignment parsing Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 08/33] tracing: Add hist trigger timestamp support Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 09/33] tracing: Add per-element variable support to tracing_map Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 10/33] tracing: Add hist_data member to hist_field Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 11/33] tracing: Add usecs modifier for hist trigger timestamps Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 12/33] tracing: Add variable support to hist triggers Tom Zanussi
2017-10-09  3:27   ` Namhyung Kim
2017-10-11 13:33     ` Tom Zanussi
2017-10-11 23:23       ` Namhyung Kim
2017-10-12 15:51         ` Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 13/33] tracing: Account for variables in named trigger compatibility Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 14/33] tracing: Move get_hist_field_flags() Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 15/33] tracing: Add simple expression support to hist triggers Tom Zanussi
2017-10-09 12:54   ` Namhyung Kim
2017-10-11 14:08     ` Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 16/33] tracing: Generalize per-element hist trigger data Tom Zanussi
2017-10-04 17:34   ` Steven Rostedt
2017-10-04 19:22     ` Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 17/33] tracing: Pass tracing_map_elt to hist_field accessor functions Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 18/33] tracing: Add hist_field 'type' field Tom Zanussi
2017-09-22 19:59 ` [PATCH v3 19/33] tracing: Add variable reference handling to hist triggers Tom Zanussi
2017-10-09 12:46   ` Namhyung Kim
2017-10-11 14:07     ` Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 20/33] tracing: Add hist trigger action hook Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 21/33] tracing: Add support for 'synthetic' events Tom Zanussi
2017-10-04 18:08   ` Steven Rostedt
2017-10-04 19:50     ` Tom Zanussi
2017-10-12  0:53       ` Namhyung Kim
2017-09-22 20:00 ` [PATCH v3 22/33] tracing: Add support for 'field variables' Tom Zanussi
2017-10-12  2:52   ` Namhyung Kim
2017-10-12 21:35     ` Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 23/33] tracing: Add 'onmatch' hist trigger action support Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 24/33] tracing: Add 'onmax' " Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 25/33] tracing: Allow whitespace to surround hist trigger filter Tom Zanussi
2017-10-04 18:11   ` Steven Rostedt
2017-10-04 19:05     ` Tom Zanussi
2017-10-04 19:28       ` Steven Rostedt
2017-10-18  3:00       ` Namhyung Kim [this message]
2017-10-18 14:11         ` Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 26/33] tracing: Add cpu field for hist triggers Tom Zanussi
2017-10-04 18:12   ` Steven Rostedt
2017-10-04 19:21     ` Tom Zanussi
2017-10-04 19:30       ` Steven Rostedt
2017-09-22 20:00 ` [PATCH v3 27/33] tracing: Add hist trigger support for variable reference aliases Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 28/33] tracing: Add 'last error' error facility for hist triggers Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 29/33] tracing: Add inter-event hist trigger Documentation Tom Zanussi
2017-10-18  1:36   ` Steven Rostedt
2017-10-18 14:07     ` Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 30/33] tracing: Make tracing_set_clock() non-static Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 31/33] tracing: Add a clock attribute for hist triggers Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 32/33] tracing: Increase trace_recursive_lock() limit for synthetic events Tom Zanussi
2017-09-22 20:00 ` [PATCH v3 33/33] tracing: Add inter-event blurb to HIST_TRIGGERS config option Tom Zanussi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171018030044.GC11621@danjae.aot.lge.com \
    --to=namhyung@kernel.org \
    --cc=baohong.liu@intel.com \
    --cc=bigeasy@linutronix.de \
    --cc=joel.opensrc@gmail.com \
    --cc=joelaf@google.com \
    --cc=kernel-team@lge.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=rajvi.jingar@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tom.zanussi@linux.intel.com \
    --cc=vedang.patel@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®