All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Agustin Vega-Frias <agustinv@codeaurora.org>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Andi Kleen <ak@linux.intel.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Namhyung Kim <namhyung@kernel.org>,
	timur@codeaurora.org
Subject: Re: [RFC 3/3] perf pmu: Restore auto-merging of PMU events created by prefix match
Date: Wed, 28 Feb 2018 09:45:24 -0300	[thread overview]
Message-ID: <20180228124524.GA6102@kernel.org> (raw)
In-Reply-To: <20180228094038.GA9474@krava>

Em Wed, Feb 28, 2018 at 10:40:38AM +0100, Jiri Olsa escreveu:
> On Tue, Feb 27, 2018 at 05:34:08PM -0500, Agustin Vega-Frias wrote:
> > This was disabled when auto-merging of non-alias events was disabled in
> > commit 63ce844 (perf stat: Only auto-merge events that are PMU aliases).
> 
> this changes the output, right? please provide before/after output

Yes, please show how it was and how it became, also please update the
documentation, as pointed out by Andi.

- Arnaldo
 
> thanks,
> jirka
> 
> > 
> > Signed-off-by: Agustin Vega-Frias <agustinv@codeaurora.org>
> > ---
> >  tools/perf/util/parse-events.c | 13 +++----------
> >  tools/perf/util/parse-events.h |  2 +-
> >  tools/perf/util/parse-events.y |  4 ++--
> >  3 files changed, 6 insertions(+), 13 deletions(-)
> > 
> > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> > index bafc91e..4e80ca3 100644
> > --- a/tools/perf/util/parse-events.c
> > +++ b/tools/perf/util/parse-events.c
> > @@ -1217,7 +1217,7 @@ int parse_events_add_numeric(struct parse_events_state *parse_state,
> >  			 get_config_name(head_config), &config_terms);
> >  }
> > 
> > -static int __parse_events_add_pmu(struct parse_events_state *parse_state,
> > +int parse_events_add_pmu(struct parse_events_state *parse_state,
> >  			 struct list_head *list, char *name,
> >  			 struct list_head *head_config, bool auto_merge_stats)
> >  {
> > @@ -1287,13 +1287,6 @@ static int __parse_events_add_pmu(struct parse_events_state *parse_state,
> >  	return evsel ? 0 : -ENOMEM;
> >  }
> > 
> > -int parse_events_add_pmu(struct parse_events_state *parse_state,
> > -			 struct list_head *list, char *name,
> > -			 struct list_head *head_config)
> > -{
> > -	return __parse_events_add_pmu(parse_state, list, name, head_config, false);
> > -}
> > -
> >  int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  			       char *str, struct list_head **listp)
> >  {
> > @@ -1323,8 +1316,8 @@ int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  					return -1;
> >  				list_add_tail(&term->list, head);
> > 
> > -				if (!__parse_events_add_pmu(parse_state, list,
> > -							    pmu->name, head, true)) {
> > +				if (!parse_events_add_pmu(parse_state, list,
> > +							  pmu->name, head, true)) {
> >  					pr_debug("%s -> %s/%s/\n", str,
> >  						 pmu->name, alias->str);
> >  					ok++;
> > diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
> > index 88108cd..5015cfd 100644
> > --- a/tools/perf/util/parse-events.h
> > +++ b/tools/perf/util/parse-events.h
> > @@ -167,7 +167,7 @@ int parse_events_add_breakpoint(struct list_head *list, int *idx,
> >  				void *ptr, char *type, u64 len);
> >  int parse_events_add_pmu(struct parse_events_state *parse_state,
> >  			 struct list_head *list, char *name,
> > -			 struct list_head *head_config);
> > +			 struct list_head *head_config, bool auto_merge_stats);
> > 
> >  int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  			       char *str,
> > diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
> > index c528469..b51278f 100644
> > --- a/tools/perf/util/parse-events.y
> > +++ b/tools/perf/util/parse-events.y
> > @@ -232,7 +232,7 @@ PE_NAME opt_event_config
> >  		YYABORT;
> > 
> >  	ALLOC_LIST(list);
> > -	if (parse_events_add_pmu(_parse_state, list, $1, $2)) {
> > +	if (parse_events_add_pmu(_parse_state, list, $1, $2, false)) {
> >  		struct perf_pmu *pmu = NULL;
> >  		int ok = 0;
> > 
> > @@ -245,7 +245,7 @@ PE_NAME opt_event_config
> >  			if (!strncmp($1, name, strlen($1)) || !fnmatch($1, name, 0)) {
> >  				if (parse_events_copy_term_list(orig_terms, &terms))
> >  					YYABORT;
> > -				if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms))
> > +				if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms, true))
> >  					ok++;
> >  				parse_events_terms__delete(terms);
> >  			}
> > --
> > 2.7.4
> > 

WARNING: multiple messages have this Message-ID (diff)
From: acme@kernel.org (Arnaldo Carvalho de Melo)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC 3/3] perf pmu: Restore auto-merging of PMU events created by prefix match
Date: Wed, 28 Feb 2018 09:45:24 -0300	[thread overview]
Message-ID: <20180228124524.GA6102@kernel.org> (raw)
In-Reply-To: <20180228094038.GA9474@krava>

Em Wed, Feb 28, 2018 at 10:40:38AM +0100, Jiri Olsa escreveu:
> On Tue, Feb 27, 2018 at 05:34:08PM -0500, Agustin Vega-Frias wrote:
> > This was disabled when auto-merging of non-alias events was disabled in
> > commit 63ce844 (perf stat: Only auto-merge events that are PMU aliases).
> 
> this changes the output, right? please provide before/after output

Yes, please show how it was and how it became, also please update the
documentation, as pointed out by Andi.

- Arnaldo
 
> thanks,
> jirka
> 
> > 
> > Signed-off-by: Agustin Vega-Frias <agustinv@codeaurora.org>
> > ---
> >  tools/perf/util/parse-events.c | 13 +++----------
> >  tools/perf/util/parse-events.h |  2 +-
> >  tools/perf/util/parse-events.y |  4 ++--
> >  3 files changed, 6 insertions(+), 13 deletions(-)
> > 
> > diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
> > index bafc91e..4e80ca3 100644
> > --- a/tools/perf/util/parse-events.c
> > +++ b/tools/perf/util/parse-events.c
> > @@ -1217,7 +1217,7 @@ int parse_events_add_numeric(struct parse_events_state *parse_state,
> >  			 get_config_name(head_config), &config_terms);
> >  }
> > 
> > -static int __parse_events_add_pmu(struct parse_events_state *parse_state,
> > +int parse_events_add_pmu(struct parse_events_state *parse_state,
> >  			 struct list_head *list, char *name,
> >  			 struct list_head *head_config, bool auto_merge_stats)
> >  {
> > @@ -1287,13 +1287,6 @@ static int __parse_events_add_pmu(struct parse_events_state *parse_state,
> >  	return evsel ? 0 : -ENOMEM;
> >  }
> > 
> > -int parse_events_add_pmu(struct parse_events_state *parse_state,
> > -			 struct list_head *list, char *name,
> > -			 struct list_head *head_config)
> > -{
> > -	return __parse_events_add_pmu(parse_state, list, name, head_config, false);
> > -}
> > -
> >  int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  			       char *str, struct list_head **listp)
> >  {
> > @@ -1323,8 +1316,8 @@ int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  					return -1;
> >  				list_add_tail(&term->list, head);
> > 
> > -				if (!__parse_events_add_pmu(parse_state, list,
> > -							    pmu->name, head, true)) {
> > +				if (!parse_events_add_pmu(parse_state, list,
> > +							  pmu->name, head, true)) {
> >  					pr_debug("%s -> %s/%s/\n", str,
> >  						 pmu->name, alias->str);
> >  					ok++;
> > diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
> > index 88108cd..5015cfd 100644
> > --- a/tools/perf/util/parse-events.h
> > +++ b/tools/perf/util/parse-events.h
> > @@ -167,7 +167,7 @@ int parse_events_add_breakpoint(struct list_head *list, int *idx,
> >  				void *ptr, char *type, u64 len);
> >  int parse_events_add_pmu(struct parse_events_state *parse_state,
> >  			 struct list_head *list, char *name,
> > -			 struct list_head *head_config);
> > +			 struct list_head *head_config, bool auto_merge_stats);
> > 
> >  int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
> >  			       char *str,
> > diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
> > index c528469..b51278f 100644
> > --- a/tools/perf/util/parse-events.y
> > +++ b/tools/perf/util/parse-events.y
> > @@ -232,7 +232,7 @@ PE_NAME opt_event_config
> >  		YYABORT;
> > 
> >  	ALLOC_LIST(list);
> > -	if (parse_events_add_pmu(_parse_state, list, $1, $2)) {
> > +	if (parse_events_add_pmu(_parse_state, list, $1, $2, false)) {
> >  		struct perf_pmu *pmu = NULL;
> >  		int ok = 0;
> > 
> > @@ -245,7 +245,7 @@ PE_NAME opt_event_config
> >  			if (!strncmp($1, name, strlen($1)) || !fnmatch($1, name, 0)) {
> >  				if (parse_events_copy_term_list(orig_terms, &terms))
> >  					YYABORT;
> > -				if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms))
> > +				if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms, true))
> >  					ok++;
> >  				parse_events_terms__delete(terms);
> >  			}
> > --
> > 2.7.4
> > 

  reply	other threads:[~2018-02-28 12:45 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27 22:34 [RFC 0/3] perf stat: improvements for handling of multiple PMUs Agustin Vega-Frias
2018-02-27 22:34 ` Agustin Vega-Frias
2018-02-27 22:34 ` [RFC 1/3] perf, tools: Support wildcards on pmu name in dynamic pmu events Agustin Vega-Frias
2018-02-27 22:34   ` Agustin Vega-Frias
2018-02-27 23:05   ` Andi Kleen
2018-02-27 23:05     ` Andi Kleen
2018-02-27 22:34 ` [RFC 2/3] perf, tools: Display pmu name when printing unmerged events in stat Agustin Vega-Frias
2018-02-27 22:34   ` Agustin Vega-Frias
2018-02-27 22:34 ` [RFC 3/3] perf pmu: Restore auto-merging of PMU events created by prefix match Agustin Vega-Frias
2018-02-27 22:34   ` Agustin Vega-Frias
2018-02-28  9:40   ` Jiri Olsa
2018-02-28  9:40     ` Jiri Olsa
2018-02-28 12:45     ` Arnaldo Carvalho de Melo [this message]
2018-02-28 12:45       ` Arnaldo Carvalho de Melo
2018-02-28 13:50       ` Agustin Vega-Frias
2018-02-28 13:50         ` Agustin Vega-Frias

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=20180228124524.GA6102@kernel.org \
    --to=acme@kernel.org \
    --cc=agustinv@codeaurora.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=timur@codeaurora.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 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.