From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH v2 0/4] tools lib traceevent: bitmask handling and plugin updates
Date: Mon, 02 Jun 2014 23:20:12 -0400 [thread overview]
Message-ID: <20140603032012.088137043@goodmis.org> (raw)
This is v2 of the patch series that added __get_bitmask() as well as
added some plugin code. This version addresses what Namhyung suggested.
The diff from v1 is posted below.
Steven Rostedt (Red Hat) (4):
tools lib traceevent: Add flag to not load event plugins
tools lib traceevent: Add options to plugins
tools lib traceevent: Add options to function plugin
tools lib traceevent: Added support for __get_bitmask() macro
----
tools/lib/traceevent/event-parse.c | 113 ++++++++++++
tools/lib/traceevent/event-parse.h | 25 ++-
tools/lib/traceevent/event-plugin.c | 204 ++++++++++++++++++++-
tools/lib/traceevent/plugin_function.c | 43 ++++-
.../perf/util/scripting-engines/trace-event-perl.c | 1 +
.../util/scripting-engines/trace-event-python.c | 1 +
6 files changed, 377 insertions(+), 10 deletions(-)
diff --git a/tools/lib/traceevent/event-parse.c b/tools/lib/traceevent/event-parse.c
index 2d6aa92..93825a1 100644
--- a/tools/lib/traceevent/event-parse.c
+++ b/tools/lib/traceevent/event-parse.c
@@ -3794,7 +3794,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size,
f = pevent_find_any_field(event, arg->bitmask.bitmask);
arg->bitmask.offset = f->offset;
}
- bitmask_offset = data2host4(pevent, data + arg->string.offset);
+ bitmask_offset = data2host4(pevent, data + arg->bitmask.offset);
bitmask_size = bitmask_offset >> 16;
bitmask_offset &= 0xffff;
print_bitmask_to_seq(pevent, s, format, len_arg,
diff --git a/tools/lib/traceevent/event-parse.h b/tools/lib/traceevent/event-parse.h
index 025627f..7a3873f 100644
--- a/tools/lib/traceevent/event-parse.h
+++ b/tools/lib/traceevent/event-parse.h
@@ -362,7 +362,7 @@ enum pevent_func_arg_type {
enum pevent_flag {
PEVENT_NSEC_OUTPUT = 1, /* output in NSECS */
PEVENT_DISABLE_SYS_PLUGINS = 1 << 1,
- PEVENT_DISABLE_PLUGINS = 1 << 2
+ PEVENT_DISABLE_PLUGINS = 1 << 2,
};
#define PEVENT_ERRORS \
@@ -419,6 +419,8 @@ enum pevent_errno {
struct plugin_list;
+#define INVALID_PLUGIN_LIST_OPTION ((char **)((unsigned long)-1))
+
struct plugin_list *traceevent_load_plugins(struct pevent *pevent);
void traceevent_unload_plugins(struct plugin_list *plugin_list,
struct pevent *pevent);
diff --git a/tools/lib/traceevent/event-plugin.c b/tools/lib/traceevent/event-plugin.c
index a244794..648ef84 100644
--- a/tools/lib/traceevent/event-plugin.c
+++ b/tools/lib/traceevent/event-plugin.c
@@ -57,7 +57,7 @@ struct plugin_list {
* used by toggling the option.
*
* Returns NULL if there's no options registered. On error it returns
- * an (char **)-1 (must check for that)
+ * INVALID_PLUGIN_LIST_OPTION
*
* Must be freed with traceevent_plugin_free_options_list().
*/
@@ -72,6 +72,7 @@ char **traceevent_plugin_list_options(void)
for (reg = registered_options; reg; reg = reg->next) {
for (op = reg->options; op->name; op++) {
char *alias = op->plugin_alias ? op->plugin_alias : op->file;
+ char **temp = list;
name = malloc(strlen(op->name) + strlen(alias) + 2);
if (!name)
@@ -80,6 +81,7 @@ char **traceevent_plugin_list_options(void)
sprintf(name, "%s:%s", alias, op->name);
list = realloc(list, count + 2);
if (!list) {
+ list = temp;
free(name);
goto err;
}
@@ -87,16 +89,14 @@ char **traceevent_plugin_list_options(void)
list[count] = NULL;
}
}
- if (!count)
- return NULL;
return list;
err:
- while (--count > 0)
+ while (--count >= 0)
free(list[count]);
free(list);
- return (char **)((unsigned long)-1);
+ return INVALID_PLUGIN_LIST_OPTION;
}
void traceevent_plugin_free_options_list(char **list)
next reply other threads:[~2014-06-03 3:22 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-03 3:20 Steven Rostedt [this message]
2014-06-03 3:20 ` [PATCH v2 1/4] tools lib traceevent: Add flag to not load event plugins Steven Rostedt
2014-06-12 12:00 ` [tip:perf/core] " tip-bot for Steven Rostedt (Red Hat)
2014-06-03 3:20 ` [PATCH v2 2/4] tools lib traceevent: Add options to plugins Steven Rostedt
2014-06-03 6:51 ` Namhyung Kim
2014-06-03 22:41 ` [PATCH v3 " Steven Rostedt
2014-06-03 22:43 ` Steven Rostedt
2014-06-04 9:33 ` Jiri Olsa
2014-06-12 12:00 ` [tip:perf/core] " tip-bot for Steven Rostedt
2014-06-04 11:42 ` [PATCH v2 2/4] " Jiri Olsa
2014-06-04 14:00 ` Namhyung Kim
2014-06-03 3:20 ` [PATCH v2 3/4] tools lib traceevent: Add options to function plugin Steven Rostedt
2014-06-12 12:00 ` [tip:perf/core] " tip-bot for Steven Rostedt (Red Hat)
2014-06-03 3:20 ` [PATCH v2 4/4] tools lib traceevent: Added support for __get_bitmask() macro Steven Rostedt
2014-06-12 12:01 ` [tip:perf/core] " tip-bot for Steven Rostedt (Red Hat)
[not found] <1399377998-14870-1-git-send-email-javi.merino@arm.com>
[not found] ` <1399377998-14870-6-git-send-email-javi.merino@arm.com>
2014-05-06 17:22 ` [RFC][PATCH] tracing: Add __cpumask() macro to trace events to record cpumasks Steven Rostedt
2014-05-06 19:16 ` Mathieu Desnoyers
2014-05-06 19:30 ` Steven Rostedt
2014-05-07 3:12 ` [RFC][PATCH v2] tracing: Add __bitmask() macro to trace events to cpumasks and other bitmasks Steven Rostedt
2014-05-07 11:40 ` Mathieu Desnoyers
2014-05-07 15:45 ` Steven Rostedt
2014-05-14 14:23 ` Javi Merino
2014-05-14 15:36 ` Steven Rostedt
2014-05-14 15:50 ` Javi Merino
2014-05-14 16:07 ` Steven Rostedt
2014-05-14 18:25 ` [RFC][PATCH v3] " Steven Rostedt
2014-05-14 19:42 ` Javi Merino
2014-05-14 20:00 ` Steven Rostedt
2014-05-15 11:34 ` Steven Rostedt
2014-05-15 11:36 ` Steven Rostedt
2014-05-15 15:20 ` Javi Merino
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=20140603032012.088137043@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
/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