mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-15 08:44:14 +08:00
perf tools: Introduce opt_event_config nonterminal
To remove duplicated code that differs only in using the matching '/a,b,c/' part or NULL if no event configuration is done ('//' or no pair of slashes at all). Will be used by some new targets allowing the configuration of hardware events, etc. Lifted part of the 'opt_event_config' nonterminal from a patch by Wang Nan. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Cody P Schafer <dev@codyps.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jeremie Galarneau <jeremie.galarneau@efficios.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kirill Smelkov <kirr@nexedi.com> Cc: Li Zefan <lizefan@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/n/tip-e3xzpx9cqsmwnaguaxyw6r42@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
e814fddde1
commit
1d55e8ef34
@ -64,6 +64,7 @@ static inc_group_count(struct list_head *list,
|
||||
%type <str> PE_PMU_EVENT_PRE PE_PMU_EVENT_SUF PE_KERNEL_PMU_EVENT
|
||||
%type <num> value_sym
|
||||
%type <head> event_config
|
||||
%type <head> opt_event_config
|
||||
%type <term> event_term
|
||||
%type <head> event_pmu
|
||||
%type <head> event_legacy_symbol
|
||||
@ -222,16 +223,6 @@ PE_NAME '/' event_config '/'
|
||||
$$ = list;
|
||||
}
|
||||
|
|
||||
PE_NAME '/' '/'
|
||||
{
|
||||
struct parse_events_evlist *data = _data;
|
||||
struct list_head *list;
|
||||
|
||||
ALLOC_LIST(list);
|
||||
ABORT_ON(parse_events_add_pmu(data, list, $1, NULL));
|
||||
$$ = list;
|
||||
}
|
||||
|
|
||||
PE_KERNEL_PMU_EVENT sep_dc
|
||||
{
|
||||
struct parse_events_evlist *data = _data;
|
||||
@ -378,7 +369,7 @@ PE_PREFIX_MEM PE_VALUE sep_dc
|
||||
}
|
||||
|
||||
event_legacy_tracepoint:
|
||||
tracepoint_name
|
||||
tracepoint_name opt_event_config
|
||||
{
|
||||
struct parse_events_evlist *data = _data;
|
||||
struct parse_events_error *error = data->error;
|
||||
@ -389,24 +380,7 @@ tracepoint_name
|
||||
error->idx = @1.first_column;
|
||||
|
||||
if (parse_events_add_tracepoint(list, &data->idx, $1.sys, $1.event,
|
||||
error, NULL))
|
||||
return -1;
|
||||
|
||||
$$ = list;
|
||||
}
|
||||
|
|
||||
tracepoint_name '/' event_config '/'
|
||||
{
|
||||
struct parse_events_evlist *data = _data;
|
||||
struct parse_events_error *error = data->error;
|
||||
struct list_head *list;
|
||||
|
||||
ALLOC_LIST(list);
|
||||
if (error)
|
||||
error->idx = @1.first_column;
|
||||
|
||||
if (parse_events_add_tracepoint(list, &data->idx, $1.sys, $1.event,
|
||||
error, $3))
|
||||
error, $2))
|
||||
return -1;
|
||||
|
||||
$$ = list;
|
||||
@ -476,6 +450,21 @@ PE_BPF_SOURCE
|
||||
$$ = list;
|
||||
}
|
||||
|
||||
opt_event_config:
|
||||
'/' event_config '/'
|
||||
{
|
||||
$$ = $2;
|
||||
}
|
||||
|
|
||||
'/' '/'
|
||||
{
|
||||
$$ = NULL;
|
||||
}
|
||||
|
|
||||
{
|
||||
$$ = NULL;
|
||||
}
|
||||
|
||||
start_terms: event_config
|
||||
{
|
||||
struct parse_events_terms *data = _data;
|
||||
|
Loading…
Reference in New Issue
Block a user