All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf tools: Fix event's pmu name parsing
@ 2021-03-01 12:23 Jiri Olsa
  2021-03-02 13:01 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 2+ messages in thread
From: Jiri Olsa @ 2021-03-01 12:23 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Chris Wilson, Jin Yao, lkml, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Namhyung Kim, Alexander Shishkin, Michael Petlan,
	Ian Rogers

Jin Yao reported parser error for software event:

  # perf stat -e software/r1a/ -a -- sleep 1
  event syntax error: 'software/r1a/'
                       \___ parser error

This happens after commit 8c3b1ba0e7ea, where new
software-gt-awake-time event's non-pmu-event-style
makes event parser conflict with software pmu.

If we allow PE_PMU_EVENT_PRE to be parsed as pmu name,
we fix the conflict and the following character '/' for
pmu or '-' for non-pmu-event-style event allows parser
to decide what even is specified.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Fixes: 8c3b1ba0e7ea ("drm/i915/gt: Track the overall awake/busy time") # 1
Reported-by: Jin Yao <yao.jin@linux.intel.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/perf/util/parse-events.y | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index d5b6aff82f21..d57ac86ce7ca 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y
@@ -89,6 +89,7 @@ static void inc_group_count(struct list_head *list,
 %type <str> PE_EVENT_NAME
 %type <str> PE_PMU_EVENT_PRE PE_PMU_EVENT_SUF PE_KERNEL_PMU_EVENT PE_PMU_EVENT_FAKE
 %type <str> PE_DRV_CFG_TERM
+%type <str> event_pmu_name
 %destructor { free ($$); } <str>
 %type <term> event_term
 %destructor { parse_events_term__delete ($$); } <term>
@@ -272,8 +273,11 @@ event_def: event_pmu |
 	   event_legacy_raw sep_dc |
 	   event_bpf_file
 
+event_pmu_name:
+PE_NAME | PE_PMU_EVENT_PRE
+
 event_pmu:
-PE_NAME opt_pmu_config
+event_pmu_name opt_pmu_config
 {
 	struct parse_events_state *parse_state = _parse_state;
 	struct parse_events_error *error = parse_state->error;
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] perf tools: Fix event's pmu name parsing
  2021-03-01 12:23 [PATCH] perf tools: Fix event's pmu name parsing Jiri Olsa
@ 2021-03-02 13:01 ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 2+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-02 13:01 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Chris Wilson, Jin Yao, lkml, Peter Zijlstra, Ingo Molnar,
	Mark Rutland, Namhyung Kim, Alexander Shishkin, Michael Petlan,
	Ian Rogers

Em Mon, Mar 01, 2021 at 01:23:15PM +0100, Jiri Olsa escreveu:
> Jin Yao reported parser error for software event:
> 
>   # perf stat -e software/r1a/ -a -- sleep 1
>   event syntax error: 'software/r1a/'
>                        \___ parser error
> 
> This happens after commit 8c3b1ba0e7ea, where new
> software-gt-awake-time event's non-pmu-event-style
> makes event parser conflict with software pmu.
> 
> If we allow PE_PMU_EVENT_PRE to be parsed as pmu name,
> we fix the conflict and the following character '/' for
> pmu or '-' for non-pmu-event-style event allows parser
> to decide what even is specified.

Thanks, applied.

- Arnaldo

 
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Fixes: 8c3b1ba0e7ea ("drm/i915/gt: Track the overall awake/busy time") # 1
> Reported-by: Jin Yao <yao.jin@linux.intel.com>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---
>  tools/perf/util/parse-events.y | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
> index d5b6aff82f21..d57ac86ce7ca 100644
> --- a/tools/perf/util/parse-events.y
> +++ b/tools/perf/util/parse-events.y
> @@ -89,6 +89,7 @@ static void inc_group_count(struct list_head *list,
>  %type <str> PE_EVENT_NAME
>  %type <str> PE_PMU_EVENT_PRE PE_PMU_EVENT_SUF PE_KERNEL_PMU_EVENT PE_PMU_EVENT_FAKE
>  %type <str> PE_DRV_CFG_TERM
> +%type <str> event_pmu_name
>  %destructor { free ($$); } <str>
>  %type <term> event_term
>  %destructor { parse_events_term__delete ($$); } <term>
> @@ -272,8 +273,11 @@ event_def: event_pmu |
>  	   event_legacy_raw sep_dc |
>  	   event_bpf_file
>  
> +event_pmu_name:
> +PE_NAME | PE_PMU_EVENT_PRE
> +
>  event_pmu:
> -PE_NAME opt_pmu_config
> +event_pmu_name opt_pmu_config
>  {
>  	struct parse_events_state *parse_state = _parse_state;
>  	struct parse_events_error *error = parse_state->error;
> -- 
> 2.29.2
> 

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-03-02 15:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-01 12:23 [PATCH] perf tools: Fix event's pmu name parsing Jiri Olsa
2021-03-02 13:01 ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.