2021-03-04 15:13:42

by Ravi Bangoria

[permalink] [raw]
Subject: [PATCH] perf report: Fix -F for branch & mem modes

perf report fails to add valid additional fields with -F when
used with branch or mem modes. Fix it.

Before patch:

$ ./perf record -b
$ ./perf report -b -F +srcline_from --stdio
Error:
Invalid --fields key: `srcline_from'

After patch:

$ ./perf report -b -F +srcline_from --stdio
# Samples: 8K of event 'cycles'
# Event count (approx.): 8784
...

Reported-by: Athira Rajeev <[email protected]>
Fixes: aa6b3c99236b ("perf report: Make -F more strict like -s")
Signed-off-by: Ravi Bangoria <[email protected]>
---
tools/perf/util/sort.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 0d5ad42812b9..552b590485bf 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -3140,7 +3140,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
if (strncasecmp(tok, sd->name, strlen(tok)))
continue;

- if (sort__mode != SORT_MODE__MEMORY)
+ if (sort__mode != SORT_MODE__BRANCH)
return -EINVAL;

return __sort_dimension__add_output(list, sd);
@@ -3152,7 +3152,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
if (strncasecmp(tok, sd->name, strlen(tok)))
continue;

- if (sort__mode != SORT_MODE__BRANCH)
+ if (sort__mode != SORT_MODE__MEMORY)
return -EINVAL;

return __sort_dimension__add_output(list, sd);
--
2.29.2


2021-03-04 15:17:32

by Athira Rajeev

[permalink] [raw]
Subject: Re: [PATCH] perf report: Fix -F for branch & mem modes



> On 04-Mar-2021, at 11:59 AM, Ravi Bangoria <[email protected]> wrote:
>
> perf report fails to add valid additional fields with -F when
> used with branch or mem modes. Fix it.
>
> Before patch:
>
> $ ./perf record -b
> $ ./perf report -b -F +srcline_from --stdio
> Error:
> Invalid --fields key: `srcline_from'
>
> After patch:
>
> $ ./perf report -b -F +srcline_from --stdio
> # Samples: 8K of event 'cycles'
> # Event count (approx.): 8784
> ...
>
> Reported-by: Athira Rajeev <[email protected]>
> Fixes: aa6b3c99236b ("perf report: Make -F more strict like -s")
> Signed-off-by: Ravi Bangoria <[email protected]>

Thanks for the fix Ravi.

Reviewed-and-tested-by: Athira Rajeev <[email protected]>

> ---
> tools/perf/util/sort.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> index 0d5ad42812b9..552b590485bf 100644
> --- a/tools/perf/util/sort.c
> +++ b/tools/perf/util/sort.c
> @@ -3140,7 +3140,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
> if (strncasecmp(tok, sd->name, strlen(tok)))
> continue;
>
> - if (sort__mode != SORT_MODE__MEMORY)
> + if (sort__mode != SORT_MODE__BRANCH)
> return -EINVAL;
>
> return __sort_dimension__add_output(list, sd);
> @@ -3152,7 +3152,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
> if (strncasecmp(tok, sd->name, strlen(tok)))
> continue;
>
> - if (sort__mode != SORT_MODE__BRANCH)
> + if (sort__mode != SORT_MODE__MEMORY)
> return -EINVAL;
>
> return __sort_dimension__add_output(list, sd);
> --
> 2.29.2
>

2021-03-05 00:53:00

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf report: Fix -F for branch & mem modes

Em Thu, Mar 04, 2021 at 12:15:58PM +0530, Athira Rajeev escreveu:
> > On 04-Mar-2021, at 11:59 AM, Ravi Bangoria <[email protected]> wrote:
> >
> > perf report fails to add valid additional fields with -F when
> > used with branch or mem modes. Fix it.
> >
> > Before patch:
> >
> > $ ./perf record -b
> > $ ./perf report -b -F +srcline_from --stdio
> > Error:
> > Invalid --fields key: `srcline_from'
> >
> > After patch:
> >
> > $ ./perf report -b -F +srcline_from --stdio
> > # Samples: 8K of event 'cycles'
> > # Event count (approx.): 8784
> > ...
> >
> > Reported-by: Athira Rajeev <[email protected]>
> > Fixes: aa6b3c99236b ("perf report: Make -F more strict like -s")
> > Signed-off-by: Ravi Bangoria <[email protected]>
>
> Thanks for the fix Ravi.
>
> Reviewed-and-tested-by: Athira Rajeev <[email protected]>

Thanks, applied.

- Arnaldo


> > ---
> > tools/perf/util/sort.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
> > index 0d5ad42812b9..552b590485bf 100644
> > --- a/tools/perf/util/sort.c
> > +++ b/tools/perf/util/sort.c
> > @@ -3140,7 +3140,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
> > if (strncasecmp(tok, sd->name, strlen(tok)))
> > continue;
> >
> > - if (sort__mode != SORT_MODE__MEMORY)
> > + if (sort__mode != SORT_MODE__BRANCH)
> > return -EINVAL;
> >
> > return __sort_dimension__add_output(list, sd);
> > @@ -3152,7 +3152,7 @@ int output_field_add(struct perf_hpp_list *list, char *tok)
> > if (strncasecmp(tok, sd->name, strlen(tok)))
> > continue;
> >
> > - if (sort__mode != SORT_MODE__BRANCH)
> > + if (sort__mode != SORT_MODE__MEMORY)
> > return -EINVAL;
> >
> > return __sort_dimension__add_output(list, sd);
> > --
> > 2.29.2
> >
>

--

- Arnaldo