From: Tom Zanussi <tom.zanussi@linux.intel.com>
To: rostedt@goodmis.org
Cc: tglx@linutronix.de, mhiramat@kernel.org, namhyung@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, julia@ni.com, fengguang.wu@intel.com,
linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org,
Tom Zanussi <tom.zanussi@linux.intel.com>
Subject: [PATCH v9 28/37] tracing: Allow whitespace to surround hist trigger filter
Date: Mon, 15 Jan 2018 20:52:02 -0600 [thread overview]
Message-ID: <1053090c3c308d4f431accdeb59dff4b511d4554.1516069914.git.tom.zanussi@linux.intel.com> (raw)
In-Reply-To: <cover.1516069914.git.tom.zanussi@linux.intel.com>
In-Reply-To: <cover.1516069914.git.tom.zanussi@linux.intel.com>
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 | 37 ++++++++++++++++++++++++++++++++-----
1 file changed, 32 insertions(+), 5 deletions(-)
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index c5a5206..9f8308f 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -5162,7 +5162,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)
@@ -5171,10 +5171,37 @@ 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(¶m, " \t");
- if (!trigger)
- return -EINVAL;
+ /*
+ * separate the trigger from the filter (k:v [if filter])
+ * allowing for whitespace in the trigger
+ */
+ p = trigger = param;
+ do {
+ p = strstr(p, "if");
+ if (!p)
+ break;
+ if (p == param)
+ return -EINVAL;
+ if (*(p - 1) != ' ' && *(p - 1) != '\t') {
+ p++;
+ continue;
+ }
+ if (p >= param + strlen(param) - strlen("if") - 1)
+ return -EINVAL;
+ if (*(p + strlen("if")) != ' ' && *(p + strlen("if")) != '\t') {
+ p++;
+ continue;
+ }
+ break;
+ } while (p);
+
+ if (!p)
+ param = NULL;
+ else {
+ *(p - 1) = '\0';
+ param = strstrip(p);
+ trigger = strstrip(trigger);
+ }
attrs = parse_hist_trigger_attrs(trigger);
if (IS_ERR(attrs))
--
1.9.3
next prev parent reply other threads:[~2018-01-16 2:55 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-16 2:51 [PATCH v9 00/37] tracing: Inter-event (e.g. latency) support Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 01/37] tracing: Move hist trigger Documentation to histogram.txt Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 02/37] tracing: Add Documentation for log2 modifier Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 03/37] tracing: Add support to detect and avoid duplicates Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 04/37] tracing: Remove code which merges duplicates Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 05/37] ring-buffer: Add interface for setting absolute time stamps Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 06/37] ring-buffer: Redefine the unimplemented RINGBUF_TYPE_TIME_STAMP Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 07/37] tracing: Add timestamp_mode trace file Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 08/37] tracing: Give event triggers access to ring_buffer_event Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 09/37] tracing: Add ring buffer event param to hist field functions Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 10/37] tracing: Break out hist trigger assignment parsing Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 11/37] tracing: Add hist trigger timestamp support Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 12/37] tracing: Add per-element variable support to tracing_map Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 13/37] tracing: Add hist_data member to hist_field Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 14/37] tracing: Add usecs modifier for hist trigger timestamps Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 15/37] tracing: Add variable support to hist triggers Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 16/37] tracing: Account for variables in named trigger compatibility Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 17/37] tracing: Move get_hist_field_flags() Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 18/37] tracing: Add simple expression support to hist triggers Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 19/37] tracing: Generalize per-element hist trigger data Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 20/37] tracing: Pass tracing_map_elt to hist_field accessor functions Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 21/37] tracing: Add hist_field 'type' field Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 22/37] tracing: Add variable reference handling to hist triggers Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 23/37] tracing: Add hist trigger action hook Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 24/37] tracing: Add support for 'synthetic' events Tom Zanussi
2018-01-16 2:51 ` [PATCH v9 25/37] tracing: Add support for 'field variables' Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 26/37] tracing: Add 'onmatch' hist trigger action support Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 27/37] tracing: Add 'onmax' " Tom Zanussi
2018-01-16 2:52 ` Tom Zanussi [this message]
2018-01-16 2:52 ` [PATCH v9 29/37] tracing: Add cpu field for hist triggers Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 30/37] tracing: Add hist trigger support for variable reference aliases Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 31/37] tracing: Add 'last error' error facility for hist triggers Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 32/37] tracing: Add inter-event hist trigger Documentation Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 33/37] tracing: Make tracing_set_clock() non-static Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 34/37] tracing: Add a clock attribute for hist triggers Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 35/37] tracing: Increase trace_recursive_lock() limit for synthetic events Tom Zanussi
2018-02-08 1:55 ` Steven Rostedt
2018-02-08 4:34 ` Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 36/37] tracing: Add inter-event blurb to HIST_TRIGGERS config option Tom Zanussi
2018-01-16 2:52 ` [PATCH v9 37/37] selftests: ftrace: Add inter-event hist triggers testcases 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=1053090c3c308d4f431accdeb59dff4b511d4554.1516069914.git.tom.zanussi@linux.intel.com \
--to=tom.zanussi@linux.intel.com \
--cc=baohong.liu@intel.com \
--cc=bigeasy@linutronix.de \
--cc=fengguang.wu@intel.com \
--cc=joel.opensrc@gmail.com \
--cc=joelaf@google.com \
--cc=julia@ni.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=namhyung@kernel.org \
--cc=rajvi.jingar@intel.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--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®