Skip to content

Commit

Permalink
perf tools: Adds the tracepoint name parsing support
Browse files Browse the repository at this point in the history
Adds rules for parsing tracepoint names. Change rules of tracepoint which
derives from PE_NAMEs into tracepoint names directly, so adding more rules
based on tracepoint names will be easier.

Changes v2-v3:
   - Change __event_legacy_tracepoint label in bison file to tracepoint_name
   - Fix formats error.

Signed-off-by: He Kuang <hekuang@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1443412336-120050-3-git-send-email-hekuang@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
He Kuang authored and acmel committed Sep 28, 2015
1 parent ffeb883 commit 865582c
Showing 1 changed file with 23 additions and 14 deletions.
37 changes: 23 additions & 14 deletions tools/perf/util/parse-events.y
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ static inc_group_count(struct list_head *list,
%type <head> event_legacy_cache
%type <head> event_legacy_mem
%type <head> event_legacy_tracepoint
%type <tracepoint_name> tracepoint_name
%type <head> event_legacy_numeric
%type <head> event_legacy_raw
%type <head> event_def
Expand All @@ -84,6 +85,10 @@ static inc_group_count(struct list_head *list,
u64 num;
struct list_head *head;
struct parse_events_term *term;
struct tracepoint_name {
char *sys;
char *event;
} tracepoint_name;
}
%%

Expand Down Expand Up @@ -368,36 +373,40 @@ PE_PREFIX_MEM PE_VALUE sep_dc
}

event_legacy_tracepoint:
PE_NAME '-' PE_NAME ':' PE_NAME
tracepoint_name
{
struct parse_events_evlist *data = _data;
struct parse_events_error *error = data->error;
struct list_head *list;
char sys_name[128];
snprintf(&sys_name, 128, "%s-%s", $1, $3);

ALLOC_LIST(list);
if (parse_events_add_tracepoint(list, &data->idx, &sys_name, $5, error)) {
if (parse_events_add_tracepoint(list, &data->idx, $1.sys, $1.event,
error)) {
if (error)
error->idx = @1.first_column;
return -1;
}
$$ = list;
}

tracepoint_name:
PE_NAME '-' PE_NAME ':' PE_NAME
{
char sys_name[128];
struct tracepoint_name tracepoint;

snprintf(&sys_name, 128, "%s-%s", $1, $3);
tracepoint.sys = &sys_name;
tracepoint.event = $5;

$$ = tracepoint;
}
|
PE_NAME ':' PE_NAME
{
struct parse_events_evlist *data = _data;
struct parse_events_error *error = data->error;
struct list_head *list;
struct tracepoint_name tracepoint = {$1, $3};

ALLOC_LIST(list);
if (parse_events_add_tracepoint(list, &data->idx, $1, $3, error)) {
if (error)
error->idx = @1.first_column;
return -1;
}
$$ = list;
$$ = tracepoint;
}

event_legacy_numeric:
Expand Down

0 comments on commit 865582c

Please sign in to comment.