[PATCH v1] perf list: Fix topic and pmu_name argument order

Ian Rogers posted 1 patch 2 weeks ago
tools/perf/builtin-list.c | 4 ++--
tools/perf/util/pfm.c     | 4 ++--
tools/perf/util/pmus.c    | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
[PATCH v1] perf list: Fix topic and pmu_name argument order
Posted by Ian Rogers 2 weeks ago
From: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>

Fix function definitions to match header file declaration. Fix two
callers to pass the arguments in the right order.

On Intel Tigerlake, before:
```
$ perf list -j|grep "\"Topic\""|sort|uniq
        "Topic": "cache",
        "Topic": "cpu",
        "Topic": "floating point",
        "Topic": "frontend",
        "Topic": "memory",
        "Topic": "other",
        "Topic": "pfm icl",
        "Topic": "pfm ix86arch",
        "Topic": "pfm perf_raw",
        "Topic": "pipeline",
        "Topic": "tool",
        "Topic": "uncore interconnect",
        "Topic": "uncore memory",
        "Topic": "uncore other",
        "Topic": "virtual memory",
$ perf list -j|grep "\"Unit\""|sort|uniq
        "Unit": "cache",
        "Unit": "cpu",
        "Unit": "cstate_core",
        "Unit": "cstate_pkg",
        "Unit": "i915",
        "Unit": "icl",
        "Unit": "intel_bts",
        "Unit": "intel_pt",
        "Unit": "ix86arch",
        "Unit": "msr",
        "Unit": "perf_raw",
        "Unit": "power",
        "Unit": "tool",
        "Unit": "uncore_arb",
        "Unit": "uncore_clock",
        "Unit": "uncore_imc_free_running_0",
        "Unit": "uncore_imc_free_running_1",
```

After:
```
$ perf list -j|grep "\"Topic\""|sort|uniq
        "Topic": "cache",
        "Topic": "floating point",
        "Topic": "frontend",
        "Topic": "memory",
        "Topic": "other",
        "Topic": "pfm icl",
        "Topic": "pfm ix86arch",
        "Topic": "pfm perf_raw",
        "Topic": "pipeline",
        "Topic": "tool",
        "Topic": "uncore interconnect",
        "Topic": "uncore memory",
        "Topic": "uncore other",
        "Topic": "virtual memory",
$ perf list -j|grep "\"Unit\""|sort|uniq
        "Unit": "cpu",
        "Unit": "cstate_core",
        "Unit": "cstate_pkg",
        "Unit": "i915",
        "Unit": "icl",
        "Unit": "intel_bts",
        "Unit": "intel_pt",
        "Unit": "ix86arch",
        "Unit": "msr",
        "Unit": "perf_raw",
        "Unit": "power",
        "Unit": "tool",
        "Unit": "uncore_arb",
        "Unit": "uncore_clock",
        "Unit": "uncore_imc_free_running_0",
        "Unit": "uncore_imc_free_running_1",
```

Fixes: e5c6109f4813 ("perf list: Reorganize to use callbacks to allow honouring command line options")
Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
Tested-by: Ian Rogers <irogers@google.com>
---
Note from Ian, I fixed the two callers and added it to
Jean-Phillippe's original change.
---
 tools/perf/builtin-list.c | 4 ++--
 tools/perf/util/pfm.c     | 4 ++--
 tools/perf/util/pmus.c    | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
index b8378ba18c28..9e7fdfcdd7ff 100644
--- a/tools/perf/builtin-list.c
+++ b/tools/perf/builtin-list.c
@@ -113,7 +113,7 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
 	}
 }
 
-static void default_print_event(void *ps, const char *pmu_name, const char *topic,
+static void default_print_event(void *ps, const char *topic, const char *pmu_name,
 				const char *event_name, const char *event_alias,
 				const char *scale_unit __maybe_unused,
 				bool deprecated, const char *event_type_desc,
@@ -354,7 +354,7 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
 	fputs(buf->buf, fp);
 }
 
-static void json_print_event(void *ps, const char *pmu_name, const char *topic,
+static void json_print_event(void *ps, const char *topic, const char *pmu_name,
 			     const char *event_name, const char *event_alias,
 			     const char *scale_unit,
 			     bool deprecated, const char *event_type_desc,
diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
index 5ccfe4b64cdf..0dacc133ed39 100644
--- a/tools/perf/util/pfm.c
+++ b/tools/perf/util/pfm.c
@@ -233,7 +233,7 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
 	}
 
 	if (is_libpfm_event_supported(name, cpus, threads)) {
-		print_cb->print_event(print_state, pinfo->name, topic,
+		print_cb->print_event(print_state, topic, pinfo->name,
 				      name, info->equiv,
 				      /*scale_unit=*/NULL,
 				      /*deprecated=*/NULL, "PFM event",
@@ -267,8 +267,8 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
 				continue;
 
 			print_cb->print_event(print_state,
-					pinfo->name,
 					topic,
+					pinfo->name,
 					name, /*alias=*/NULL,
 					/*scale_unit=*/NULL,
 					/*deprecated=*/NULL, "PFM event",
diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
index 107de86c2637..6d4c7c9ecf3a 100644
--- a/tools/perf/util/pmus.c
+++ b/tools/perf/util/pmus.c
@@ -501,8 +501,8 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
 			goto free;
 
 		print_cb->print_event(print_state,
-				aliases[j].pmu_name,
 				aliases[j].topic,
+				aliases[j].pmu_name,
 				aliases[j].name,
 				aliases[j].alias,
 				aliases[j].scale_unit,
-- 
2.47.0.277.g8800431eea-goog
Re: [PATCH v1] perf list: Fix topic and pmu_name argument order
Posted by Liang, Kan 1 week, 5 days ago

On 2024-11-08 9:58 p.m., Ian Rogers wrote:
> From: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> 
> Fix function definitions to match header file declaration. Fix two
> callers to pass the arguments in the right order.
> 
> On Intel Tigerlake, before:
> ```
> $ perf list -j|grep "\"Topic\""|sort|uniq
>         "Topic": "cache",
>         "Topic": "cpu",
>         "Topic": "floating point",
>         "Topic": "frontend",
>         "Topic": "memory",
>         "Topic": "other",
>         "Topic": "pfm icl",
>         "Topic": "pfm ix86arch",
>         "Topic": "pfm perf_raw",
>         "Topic": "pipeline",
>         "Topic": "tool",
>         "Topic": "uncore interconnect",
>         "Topic": "uncore memory",
>         "Topic": "uncore other",
>         "Topic": "virtual memory",
> $ perf list -j|grep "\"Unit\""|sort|uniq
>         "Unit": "cache",
>         "Unit": "cpu",
>         "Unit": "cstate_core",
>         "Unit": "cstate_pkg",
>         "Unit": "i915",
>         "Unit": "icl",
>         "Unit": "intel_bts",
>         "Unit": "intel_pt",
>         "Unit": "ix86arch",
>         "Unit": "msr",
>         "Unit": "perf_raw",
>         "Unit": "power",
>         "Unit": "tool",
>         "Unit": "uncore_arb",
>         "Unit": "uncore_clock",
>         "Unit": "uncore_imc_free_running_0",
>         "Unit": "uncore_imc_free_running_1",
> ```
> 
> After:
> ```
> $ perf list -j|grep "\"Topic\""|sort|uniq
>         "Topic": "cache",
>         "Topic": "floating point",
>         "Topic": "frontend",
>         "Topic": "memory",
>         "Topic": "other",
>         "Topic": "pfm icl",
>         "Topic": "pfm ix86arch",
>         "Topic": "pfm perf_raw",
>         "Topic": "pipeline",
>         "Topic": "tool",
>         "Topic": "uncore interconnect",
>         "Topic": "uncore memory",
>         "Topic": "uncore other",
>         "Topic": "virtual memory",
> $ perf list -j|grep "\"Unit\""|sort|uniq
>         "Unit": "cpu",
>         "Unit": "cstate_core",
>         "Unit": "cstate_pkg",
>         "Unit": "i915",
>         "Unit": "icl",
>         "Unit": "intel_bts",
>         "Unit": "intel_pt",
>         "Unit": "ix86arch",
>         "Unit": "msr",
>         "Unit": "perf_raw",
>         "Unit": "power",
>         "Unit": "tool",
>         "Unit": "uncore_arb",
>         "Unit": "uncore_clock",
>         "Unit": "uncore_imc_free_running_0",
>         "Unit": "uncore_imc_free_running_1",
> ```
> 
> Fixes: e5c6109f4813 ("perf list: Reorganize to use callbacks to allow honouring command line options")
> Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> Tested-by: Ian Rogers <irogers@google.com>

Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

Thanks,
Kan

> ---
> Note from Ian, I fixed the two callers and added it to
> Jean-Phillippe's original change.
> ---
>  tools/perf/builtin-list.c | 4 ++--
>  tools/perf/util/pfm.c     | 4 ++--
>  tools/perf/util/pmus.c    | 2 +-
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
> index b8378ba18c28..9e7fdfcdd7ff 100644
> --- a/tools/perf/builtin-list.c
> +++ b/tools/perf/builtin-list.c
> @@ -113,7 +113,7 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
>  	}
>  }
>  
> -static void default_print_event(void *ps, const char *pmu_name, const char *topic,
> +static void default_print_event(void *ps, const char *topic, const char *pmu_name,
>  				const char *event_name, const char *event_alias,
>  				const char *scale_unit __maybe_unused,
>  				bool deprecated, const char *event_type_desc,
> @@ -354,7 +354,7 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
>  	fputs(buf->buf, fp);
>  }
>  
> -static void json_print_event(void *ps, const char *pmu_name, const char *topic,
> +static void json_print_event(void *ps, const char *topic, const char *pmu_name,
>  			     const char *event_name, const char *event_alias,
>  			     const char *scale_unit,
>  			     bool deprecated, const char *event_type_desc,
> diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
> index 5ccfe4b64cdf..0dacc133ed39 100644
> --- a/tools/perf/util/pfm.c
> +++ b/tools/perf/util/pfm.c
> @@ -233,7 +233,7 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
>  	}
>  
>  	if (is_libpfm_event_supported(name, cpus, threads)) {
> -		print_cb->print_event(print_state, pinfo->name, topic,
> +		print_cb->print_event(print_state, topic, pinfo->name,
>  				      name, info->equiv,
>  				      /*scale_unit=*/NULL,
>  				      /*deprecated=*/NULL, "PFM event",
> @@ -267,8 +267,8 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
>  				continue;
>  
>  			print_cb->print_event(print_state,
> -					pinfo->name,
>  					topic,
> +					pinfo->name,
>  					name, /*alias=*/NULL,
>  					/*scale_unit=*/NULL,
>  					/*deprecated=*/NULL, "PFM event",
> diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
> index 107de86c2637..6d4c7c9ecf3a 100644
> --- a/tools/perf/util/pmus.c
> +++ b/tools/perf/util/pmus.c
> @@ -501,8 +501,8 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
>  			goto free;
>  
>  		print_cb->print_event(print_state,
> -				aliases[j].pmu_name,
>  				aliases[j].topic,
> +				aliases[j].pmu_name,
>  				aliases[j].name,
>  				aliases[j].alias,
>  				aliases[j].scale_unit,
Re: [PATCH v1] perf list: Fix topic and pmu_name argument order
Posted by Arnaldo Carvalho de Melo 1 week, 5 days ago
On Mon, Nov 11, 2024 at 09:48:41AM -0500, Liang, Kan wrote:
> 
> 
> On 2024-11-08 9:58 p.m., Ian Rogers wrote:
> > From: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> > 
> > Fix function definitions to match header file declaration. Fix two
> > callers to pass the arguments in the right order.
> > 
> > On Intel Tigerlake, before:
> > ```
> > $ perf list -j|grep "\"Topic\""|sort|uniq
> >         "Topic": "cache",
> >         "Topic": "cpu",
> >         "Topic": "floating point",
> >         "Topic": "frontend",
> >         "Topic": "memory",
> >         "Topic": "other",
> >         "Topic": "pfm icl",
> >         "Topic": "pfm ix86arch",
> >         "Topic": "pfm perf_raw",
> >         "Topic": "pipeline",
> >         "Topic": "tool",
> >         "Topic": "uncore interconnect",
> >         "Topic": "uncore memory",
> >         "Topic": "uncore other",
> >         "Topic": "virtual memory",
> > $ perf list -j|grep "\"Unit\""|sort|uniq
> >         "Unit": "cache",
> >         "Unit": "cpu",
> >         "Unit": "cstate_core",
> >         "Unit": "cstate_pkg",
> >         "Unit": "i915",
> >         "Unit": "icl",
> >         "Unit": "intel_bts",
> >         "Unit": "intel_pt",
> >         "Unit": "ix86arch",
> >         "Unit": "msr",
> >         "Unit": "perf_raw",
> >         "Unit": "power",
> >         "Unit": "tool",
> >         "Unit": "uncore_arb",
> >         "Unit": "uncore_clock",
> >         "Unit": "uncore_imc_free_running_0",
> >         "Unit": "uncore_imc_free_running_1",
> > ```
> > 
> > After:
> > ```
> > $ perf list -j|grep "\"Topic\""|sort|uniq
> >         "Topic": "cache",
> >         "Topic": "floating point",
> >         "Topic": "frontend",
> >         "Topic": "memory",
> >         "Topic": "other",
> >         "Topic": "pfm icl",
> >         "Topic": "pfm ix86arch",
> >         "Topic": "pfm perf_raw",
> >         "Topic": "pipeline",
> >         "Topic": "tool",
> >         "Topic": "uncore interconnect",
> >         "Topic": "uncore memory",
> >         "Topic": "uncore other",
> >         "Topic": "virtual memory",
> > $ perf list -j|grep "\"Unit\""|sort|uniq
> >         "Unit": "cpu",
> >         "Unit": "cstate_core",
> >         "Unit": "cstate_pkg",
> >         "Unit": "i915",
> >         "Unit": "icl",
> >         "Unit": "intel_bts",
> >         "Unit": "intel_pt",
> >         "Unit": "ix86arch",
> >         "Unit": "msr",
> >         "Unit": "perf_raw",
> >         "Unit": "power",
> >         "Unit": "tool",
> >         "Unit": "uncore_arb",
> >         "Unit": "uncore_clock",
> >         "Unit": "uncore_imc_free_running_0",
> >         "Unit": "uncore_imc_free_running_1",
> > ```
> > 
> > Fixes: e5c6109f4813 ("perf list: Reorganize to use callbacks to allow honouring command line options")
> > Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> > Tested-by: Ian Rogers <irogers@google.com>
> 
> Reviewed-by: Kan Liang <kan.liang@linux.intel.com>

> > ---
> > Note from Ian, I fixed the two callers and added it to
> > Jean-Phillippe's original change.

I think that in this case we need:

[ I fixed the two callers and added it to Jean-Phillippe's original change. ]
Signed-off-by: Ian Rogers <irogers@google.com>

Ok?

- Arnaldo

> > ---
> >  tools/perf/builtin-list.c | 4 ++--
> >  tools/perf/util/pfm.c     | 4 ++--
> >  tools/perf/util/pmus.c    | 2 +-
> >  3 files changed, 5 insertions(+), 5 deletions(-)
> > 
> > diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
> > index b8378ba18c28..9e7fdfcdd7ff 100644
> > --- a/tools/perf/builtin-list.c
> > +++ b/tools/perf/builtin-list.c
> > @@ -113,7 +113,7 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
> >  	}
> >  }
> >  
> > -static void default_print_event(void *ps, const char *pmu_name, const char *topic,
> > +static void default_print_event(void *ps, const char *topic, const char *pmu_name,
> >  				const char *event_name, const char *event_alias,
> >  				const char *scale_unit __maybe_unused,
> >  				bool deprecated, const char *event_type_desc,
> > @@ -354,7 +354,7 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
> >  	fputs(buf->buf, fp);
> >  }
> >  
> > -static void json_print_event(void *ps, const char *pmu_name, const char *topic,
> > +static void json_print_event(void *ps, const char *topic, const char *pmu_name,
> >  			     const char *event_name, const char *event_alias,
> >  			     const char *scale_unit,
> >  			     bool deprecated, const char *event_type_desc,
> > diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
> > index 5ccfe4b64cdf..0dacc133ed39 100644
> > --- a/tools/perf/util/pfm.c
> > +++ b/tools/perf/util/pfm.c
> > @@ -233,7 +233,7 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
> >  	}
> >  
> >  	if (is_libpfm_event_supported(name, cpus, threads)) {
> > -		print_cb->print_event(print_state, pinfo->name, topic,
> > +		print_cb->print_event(print_state, topic, pinfo->name,
> >  				      name, info->equiv,
> >  				      /*scale_unit=*/NULL,
> >  				      /*deprecated=*/NULL, "PFM event",
> > @@ -267,8 +267,8 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
> >  				continue;
> >  
> >  			print_cb->print_event(print_state,
> > -					pinfo->name,
> >  					topic,
> > +					pinfo->name,
> >  					name, /*alias=*/NULL,
> >  					/*scale_unit=*/NULL,
> >  					/*deprecated=*/NULL, "PFM event",
> > diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
> > index 107de86c2637..6d4c7c9ecf3a 100644
> > --- a/tools/perf/util/pmus.c
> > +++ b/tools/perf/util/pmus.c
> > @@ -501,8 +501,8 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
> >  			goto free;
> >  
> >  		print_cb->print_event(print_state,
> > -				aliases[j].pmu_name,
> >  				aliases[j].topic,
> > +				aliases[j].pmu_name,
> >  				aliases[j].name,
> >  				aliases[j].alias,
> >  				aliases[j].scale_unit,
Re: [PATCH v1] perf list: Fix topic and pmu_name argument order
Posted by Ian Rogers 1 week, 5 days ago
On Mon, Nov 11, 2024 at 9:35 AM Arnaldo Carvalho de Melo
<acme@kernel.org> wrote:
>
> On Mon, Nov 11, 2024 at 09:48:41AM -0500, Liang, Kan wrote:
> >
> >
> > On 2024-11-08 9:58 p.m., Ian Rogers wrote:
> > > From: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> > >
> > > Fix function definitions to match header file declaration. Fix two
> > > callers to pass the arguments in the right order.
> > >
> > > On Intel Tigerlake, before:
> > > ```
> > > $ perf list -j|grep "\"Topic\""|sort|uniq
> > >         "Topic": "cache",
> > >         "Topic": "cpu",
> > >         "Topic": "floating point",
> > >         "Topic": "frontend",
> > >         "Topic": "memory",
> > >         "Topic": "other",
> > >         "Topic": "pfm icl",
> > >         "Topic": "pfm ix86arch",
> > >         "Topic": "pfm perf_raw",
> > >         "Topic": "pipeline",
> > >         "Topic": "tool",
> > >         "Topic": "uncore interconnect",
> > >         "Topic": "uncore memory",
> > >         "Topic": "uncore other",
> > >         "Topic": "virtual memory",
> > > $ perf list -j|grep "\"Unit\""|sort|uniq
> > >         "Unit": "cache",
> > >         "Unit": "cpu",
> > >         "Unit": "cstate_core",
> > >         "Unit": "cstate_pkg",
> > >         "Unit": "i915",
> > >         "Unit": "icl",
> > >         "Unit": "intel_bts",
> > >         "Unit": "intel_pt",
> > >         "Unit": "ix86arch",
> > >         "Unit": "msr",
> > >         "Unit": "perf_raw",
> > >         "Unit": "power",
> > >         "Unit": "tool",
> > >         "Unit": "uncore_arb",
> > >         "Unit": "uncore_clock",
> > >         "Unit": "uncore_imc_free_running_0",
> > >         "Unit": "uncore_imc_free_running_1",
> > > ```
> > >
> > > After:
> > > ```
> > > $ perf list -j|grep "\"Topic\""|sort|uniq
> > >         "Topic": "cache",
> > >         "Topic": "floating point",
> > >         "Topic": "frontend",
> > >         "Topic": "memory",
> > >         "Topic": "other",
> > >         "Topic": "pfm icl",
> > >         "Topic": "pfm ix86arch",
> > >         "Topic": "pfm perf_raw",
> > >         "Topic": "pipeline",
> > >         "Topic": "tool",
> > >         "Topic": "uncore interconnect",
> > >         "Topic": "uncore memory",
> > >         "Topic": "uncore other",
> > >         "Topic": "virtual memory",
> > > $ perf list -j|grep "\"Unit\""|sort|uniq
> > >         "Unit": "cpu",
> > >         "Unit": "cstate_core",
> > >         "Unit": "cstate_pkg",
> > >         "Unit": "i915",
> > >         "Unit": "icl",
> > >         "Unit": "intel_bts",
> > >         "Unit": "intel_pt",
> > >         "Unit": "ix86arch",
> > >         "Unit": "msr",
> > >         "Unit": "perf_raw",
> > >         "Unit": "power",
> > >         "Unit": "tool",
> > >         "Unit": "uncore_arb",
> > >         "Unit": "uncore_clock",
> > >         "Unit": "uncore_imc_free_running_0",
> > >         "Unit": "uncore_imc_free_running_1",
> > > ```
> > >
> > > Fixes: e5c6109f4813 ("perf list: Reorganize to use callbacks to allow honouring command line options")
> > > Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
> > > Tested-by: Ian Rogers <irogers@google.com>
> >
> > Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
>
> > > ---
> > > Note from Ian, I fixed the two callers and added it to
> > > Jean-Phillippe's original change.
>
> I think that in this case we need:
>
> [ I fixed the two callers and added it to Jean-Phillippe's original change. ]
> Signed-off-by: Ian Rogers <irogers@google.com>
>
> Ok?

Sgtm.

Thanks,
Ian

> > > ---
> > >  tools/perf/builtin-list.c | 4 ++--
> > >  tools/perf/util/pfm.c     | 4 ++--
> > >  tools/perf/util/pmus.c    | 2 +-
> > >  3 files changed, 5 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
> > > index b8378ba18c28..9e7fdfcdd7ff 100644
> > > --- a/tools/perf/builtin-list.c
> > > +++ b/tools/perf/builtin-list.c
> > > @@ -113,7 +113,7 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
> > >     }
> > >  }
> > >
> > > -static void default_print_event(void *ps, const char *pmu_name, const char *topic,
> > > +static void default_print_event(void *ps, const char *topic, const char *pmu_name,
> > >                             const char *event_name, const char *event_alias,
> > >                             const char *scale_unit __maybe_unused,
> > >                             bool deprecated, const char *event_type_desc,
> > > @@ -354,7 +354,7 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
> > >     fputs(buf->buf, fp);
> > >  }
> > >
> > > -static void json_print_event(void *ps, const char *pmu_name, const char *topic,
> > > +static void json_print_event(void *ps, const char *topic, const char *pmu_name,
> > >                          const char *event_name, const char *event_alias,
> > >                          const char *scale_unit,
> > >                          bool deprecated, const char *event_type_desc,
> > > diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
> > > index 5ccfe4b64cdf..0dacc133ed39 100644
> > > --- a/tools/perf/util/pfm.c
> > > +++ b/tools/perf/util/pfm.c
> > > @@ -233,7 +233,7 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
> > >     }
> > >
> > >     if (is_libpfm_event_supported(name, cpus, threads)) {
> > > -           print_cb->print_event(print_state, pinfo->name, topic,
> > > +           print_cb->print_event(print_state, topic, pinfo->name,
> > >                                   name, info->equiv,
> > >                                   /*scale_unit=*/NULL,
> > >                                   /*deprecated=*/NULL, "PFM event",
> > > @@ -267,8 +267,8 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
> > >                             continue;
> > >
> > >                     print_cb->print_event(print_state,
> > > -                                   pinfo->name,
> > >                                     topic,
> > > +                                   pinfo->name,
> > >                                     name, /*alias=*/NULL,
> > >                                     /*scale_unit=*/NULL,
> > >                                     /*deprecated=*/NULL, "PFM event",
> > > diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
> > > index 107de86c2637..6d4c7c9ecf3a 100644
> > > --- a/tools/perf/util/pmus.c
> > > +++ b/tools/perf/util/pmus.c
> > > @@ -501,8 +501,8 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
> > >                     goto free;
> > >
> > >             print_cb->print_event(print_state,
> > > -                           aliases[j].pmu_name,
> > >                             aliases[j].topic,
> > > +                           aliases[j].pmu_name,
> > >                             aliases[j].name,
> > >                             aliases[j].alias,
> > >                             aliases[j].scale_unit,
Re: [PATCH v1] perf list: Fix topic and pmu_name argument order
Posted by Jean-philippe ROMAIN 1 week, 4 days ago
On 11/11/24 19:20, Ian Rogers wrote:
> On Mon, Nov 11, 2024 at 9:35 AM Arnaldo Carvalho de Melo
> <acme@kernel.org> wrote:
>> On Mon, Nov 11, 2024 at 09:48:41AM -0500, Liang, Kan wrote:
>>>
>>> On 2024-11-08 9:58 p.m., Ian Rogers wrote:
>>>> From: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
>>>>
>>>> Fix function definitions to match header file declaration. Fix two
>>>> callers to pass the arguments in the right order.
>>>>
>>>> On Intel Tigerlake, before:
>>>> ```
>>>> $ perf list -j|grep "\"Topic\""|sort|uniq
>>>>          "Topic": "cache",
>>>>          "Topic": "cpu",
>>>>          "Topic": "floating point",
>>>>          "Topic": "frontend",
>>>>          "Topic": "memory",
>>>>          "Topic": "other",
>>>>          "Topic": "pfm icl",
>>>>          "Topic": "pfm ix86arch",
>>>>          "Topic": "pfm perf_raw",
>>>>          "Topic": "pipeline",
>>>>          "Topic": "tool",
>>>>          "Topic": "uncore interconnect",
>>>>          "Topic": "uncore memory",
>>>>          "Topic": "uncore other",
>>>>          "Topic": "virtual memory",
>>>> $ perf list -j|grep "\"Unit\""|sort|uniq
>>>>          "Unit": "cache",
>>>>          "Unit": "cpu",
>>>>          "Unit": "cstate_core",
>>>>          "Unit": "cstate_pkg",
>>>>          "Unit": "i915",
>>>>          "Unit": "icl",
>>>>          "Unit": "intel_bts",
>>>>          "Unit": "intel_pt",
>>>>          "Unit": "ix86arch",
>>>>          "Unit": "msr",
>>>>          "Unit": "perf_raw",
>>>>          "Unit": "power",
>>>>          "Unit": "tool",
>>>>          "Unit": "uncore_arb",
>>>>          "Unit": "uncore_clock",
>>>>          "Unit": "uncore_imc_free_running_0",
>>>>          "Unit": "uncore_imc_free_running_1",
>>>> ```
>>>>
>>>> After:
>>>> ```
>>>> $ perf list -j|grep "\"Topic\""|sort|uniq
>>>>          "Topic": "cache",
>>>>          "Topic": "floating point",
>>>>          "Topic": "frontend",
>>>>          "Topic": "memory",
>>>>          "Topic": "other",
>>>>          "Topic": "pfm icl",
>>>>          "Topic": "pfm ix86arch",
>>>>          "Topic": "pfm perf_raw",
>>>>          "Topic": "pipeline",
>>>>          "Topic": "tool",
>>>>          "Topic": "uncore interconnect",
>>>>          "Topic": "uncore memory",
>>>>          "Topic": "uncore other",
>>>>          "Topic": "virtual memory",
>>>> $ perf list -j|grep "\"Unit\""|sort|uniq
>>>>          "Unit": "cpu",
>>>>          "Unit": "cstate_core",
>>>>          "Unit": "cstate_pkg",
>>>>          "Unit": "i915",
>>>>          "Unit": "icl",
>>>>          "Unit": "intel_bts",
>>>>          "Unit": "intel_pt",
>>>>          "Unit": "ix86arch",
>>>>          "Unit": "msr",
>>>>          "Unit": "perf_raw",
>>>>          "Unit": "power",
>>>>          "Unit": "tool",
>>>>          "Unit": "uncore_arb",
>>>>          "Unit": "uncore_clock",
>>>>          "Unit": "uncore_imc_free_running_0",
>>>>          "Unit": "uncore_imc_free_running_1",
>>>> ```
>>>>
>>>> Fixes: e5c6109f4813 ("perf list: Reorganize to use callbacks to allow honouring command line options")
>>>> Signed-off-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>
>>>> Tested-by: Ian Rogers <irogers@google.com>
>>> Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
>>>> ---
>>>> Note from Ian, I fixed the two callers and added it to
>>>> Jean-Phillippe's original change.
>> I think that in this case we need:
>>
>> [ I fixed the two callers and added it to Jean-Phillippe's original change. ]
>> Signed-off-by: Ian Rogers <irogers@google.com>
>>
>> Ok?
> Sgtm.
>
> Thanks,
> Ian
>

Reviewed-by: Jean-Philippe Romain <jean-philippe.romain@foss.st.com>

Many thanks,
Jean-Philippe

>>>> ---
>>>>   tools/perf/builtin-list.c | 4 ++--
>>>>   tools/perf/util/pfm.c     | 4 ++--
>>>>   tools/perf/util/pmus.c    | 2 +-
>>>>   3 files changed, 5 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
>>>> index b8378ba18c28..9e7fdfcdd7ff 100644
>>>> --- a/tools/perf/builtin-list.c
>>>> +++ b/tools/perf/builtin-list.c
>>>> @@ -113,7 +113,7 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
>>>>      }
>>>>   }
>>>>
>>>> -static void default_print_event(void *ps, const char *pmu_name, const char *topic,
>>>> +static void default_print_event(void *ps, const char *topic, const char *pmu_name,
>>>>                              const char *event_name, const char *event_alias,
>>>>                              const char *scale_unit __maybe_unused,
>>>>                              bool deprecated, const char *event_type_desc,
>>>> @@ -354,7 +354,7 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
>>>>      fputs(buf->buf, fp);
>>>>   }
>>>>
>>>> -static void json_print_event(void *ps, const char *pmu_name, const char *topic,
>>>> +static void json_print_event(void *ps, const char *topic, const char *pmu_name,
>>>>                           const char *event_name, const char *event_alias,
>>>>                           const char *scale_unit,
>>>>                           bool deprecated, const char *event_type_desc,
>>>> diff --git a/tools/perf/util/pfm.c b/tools/perf/util/pfm.c
>>>> index 5ccfe4b64cdf..0dacc133ed39 100644
>>>> --- a/tools/perf/util/pfm.c
>>>> +++ b/tools/perf/util/pfm.c
>>>> @@ -233,7 +233,7 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
>>>>      }
>>>>
>>>>      if (is_libpfm_event_supported(name, cpus, threads)) {
>>>> -           print_cb->print_event(print_state, pinfo->name, topic,
>>>> +           print_cb->print_event(print_state, topic, pinfo->name,
>>>>                                    name, info->equiv,
>>>>                                    /*scale_unit=*/NULL,
>>>>                                    /*deprecated=*/NULL, "PFM event",
>>>> @@ -267,8 +267,8 @@ print_libpfm_event(const struct print_callbacks *print_cb, void *print_state,
>>>>                              continue;
>>>>
>>>>                      print_cb->print_event(print_state,
>>>> -                                   pinfo->name,
>>>>                                      topic,
>>>> +                                   pinfo->name,
>>>>                                      name, /*alias=*/NULL,
>>>>                                      /*scale_unit=*/NULL,
>>>>                                      /*deprecated=*/NULL, "PFM event",
>>>> diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
>>>> index 107de86c2637..6d4c7c9ecf3a 100644
>>>> --- a/tools/perf/util/pmus.c
>>>> +++ b/tools/perf/util/pmus.c
>>>> @@ -501,8 +501,8 @@ void perf_pmus__print_pmu_events(const struct print_callbacks *print_cb, void *p
>>>>                      goto free;
>>>>
>>>>              print_cb->print_event(print_state,
>>>> -                           aliases[j].pmu_name,
>>>>                              aliases[j].topic,
>>>> +                           aliases[j].pmu_name,
>>>>                              aliases[j].name,
>>>>                              aliases[j].alias,
>>>>                              aliases[j].scale_unit,