tools lib traceevent: bitmask handling and plugin updates
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest4 patches 3 repliesIn review
- v14 patches 6 repliesSuperseded
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | tools lib traceevent: Add flag to not load event pluginstools/ tools/ | +8 | 0 replies | |
| 2/4 | tools lib traceevent: Add options to pluginstools/ tools/ | +210 | 6 replies | |
| 3/4 | tools lib traceevent: Add options to function plugintools/ | +37 | 0 replies | |
| 4/4 | tools lib traceevent: Added support for __get_bitmask() macrotools/ tools/ tools/ +1 more | +122 | 0 replies |
Reviews trailers per patch
1 of 4 patches has a Reviewed-by or Acked-by.
| Patch | Javi Merino | Namhyung Kim |
|---|---|---|
| 1/4 | ||
| 2/4 | A-b | |
| 3/4 | ||
| 4/4 | T-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v2 0/4] tools lib traceevent: bitmask handling and plugin updates
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(-)
tools/lib/traceevent/event-parse.c +1 -1
@@ -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,
tools/lib/traceevent/event-parse.h +3 -1
@@ -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);
tools/lib/traceevent/event-plugin.c +5 -5
@@ -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)