2018-07-12 13:53:32

by Jiri Olsa

[permalink] [raw]
Subject: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Stephan reported, that pipe mode does not carry the group
information and thus the piped report won't display the
grouped output for following command:

# perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report

It has no idea about the group setup, so it will display
events separately:

# Overhead Command Shared Object ...
# ........ ............... .......................
#
6.71% swapper [kernel.kallsyms]
2.28% offlineimap libpython2.7.so.1.0
0.78% perf [kernel.kallsyms]
...

Fixing GROUP_DESC feature record to be synthesized in pipe mode,
so the report output is grouped if there's group defined in record:

# Overhead Command Shared ...
# ........................ ............... .......
#
7.57% 0.16% 0.30% swapper [kernel
1.87% 3.15% 2.46% offlineimap libpyth
1.33% 0.00% 0.00% perf [kernel
...

Cc: David Carrillo-Cisneros <[email protected]>
Reported-by: Stephane Eranian <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Jiri Olsa <[email protected]>
---
tools/perf/util/header.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 59fcc790c865..af9aaf28f976 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
FEAT_OPN(BRANCH_STACK, branch_stack, false),
FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
- FEAT_OPN(GROUP_DESC, group_desc, false),
+ FEAT_OPR(GROUP_DESC, group_desc, false),
FEAT_OPN(AUXTRACE, auxtrace, false),
FEAT_OPN(STAT, stat, false),
FEAT_OPN(CACHE, cache, true),
--
2.17.1



2018-07-12 16:36:10

by Stephane Eranian

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Hi Jiri,
On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
>
> Stephan reported, that pipe mode does not carry the group
> information and thus the piped report won't display the
> grouped output for following command:
>
Thanks for fixing this quickly.
I think we should have more testing on the pipe mode, in general.

> # perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report
>
> It has no idea about the group setup, so it will display
> events separately:
>
> # Overhead Command Shared Object ...
> # ........ ............... .......................
> #
> 6.71% swapper [kernel.kallsyms]
> 2.28% offlineimap libpython2.7.so.1.0
> 0.78% perf [kernel.kallsyms]
> ...
>
> Fixing GROUP_DESC feature record to be synthesized in pipe mode,
> so the report output is grouped if there's group defined in record:
>
> # Overhead Command Shared ...
> # ........................ ............... .......
> #
> 7.57% 0.16% 0.30% swapper [kernel
> 1.87% 3.15% 2.46% offlineimap libpyth
> 1.33% 0.00% 0.00% perf [kernel
> ...
>
> Cc: David Carrillo-Cisneros <[email protected]>
> Reported-by: Stephane Eranian <[email protected]>
> Link: http://lkml.kernel.org/n/[email protected]
> Signed-off-by: Jiri Olsa <[email protected]>
> ---
> tools/perf/util/header.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index 59fcc790c865..af9aaf28f976 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
> FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
> FEAT_OPN(BRANCH_STACK, branch_stack, false),
> FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
> - FEAT_OPN(GROUP_DESC, group_desc, false),
> + FEAT_OPR(GROUP_DESC, group_desc, false),
> FEAT_OPN(AUXTRACE, auxtrace, false),
> FEAT_OPN(STAT, stat, false),
> FEAT_OPN(CACHE, cache, true),
> --
> 2.17.1
>

2018-07-12 16:51:27

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

On Thu, Jul 12, 2018 at 09:34:45AM -0700, Stephane Eranian wrote:
> Hi Jiri,
> On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
> >
> > Stephan reported, that pipe mode does not carry the group
> > information and thus the piped report won't display the
> > grouped output for following command:
> >
> Thanks for fixing this quickly.

could I have your tested/acked by?

> I think we should have more testing on the pipe mode, in general.

yea, we should

jirka

>
> > # perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report
> >
> > It has no idea about the group setup, so it will display
> > events separately:
> >
> > # Overhead Command Shared Object ...
> > # ........ ............... .......................
> > #
> > 6.71% swapper [kernel.kallsyms]
> > 2.28% offlineimap libpython2.7.so.1.0
> > 0.78% perf [kernel.kallsyms]
> > ...
> >
> > Fixing GROUP_DESC feature record to be synthesized in pipe mode,
> > so the report output is grouped if there's group defined in record:
> >
> > # Overhead Command Shared ...
> > # ........................ ............... .......
> > #
> > 7.57% 0.16% 0.30% swapper [kernel
> > 1.87% 3.15% 2.46% offlineimap libpyth
> > 1.33% 0.00% 0.00% perf [kernel
> > ...
> >
> > Cc: David Carrillo-Cisneros <[email protected]>
> > Reported-by: Stephane Eranian <[email protected]>
> > Link: http://lkml.kernel.org/n/[email protected]
> > Signed-off-by: Jiri Olsa <[email protected]>
> > ---
> > tools/perf/util/header.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > index 59fcc790c865..af9aaf28f976 100644
> > --- a/tools/perf/util/header.c
> > +++ b/tools/perf/util/header.c
> > @@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
> > FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
> > FEAT_OPN(BRANCH_STACK, branch_stack, false),
> > FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
> > - FEAT_OPN(GROUP_DESC, group_desc, false),
> > + FEAT_OPR(GROUP_DESC, group_desc, false),
> > FEAT_OPN(AUXTRACE, auxtrace, false),
> > FEAT_OPN(STAT, stat, false),
> > FEAT_OPN(CACHE, cache, true),
> > --
> > 2.17.1
> >

2018-07-13 06:20:39

by Stephane Eranian

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Hi Jiri,
On Thu, Jul 12, 2018 at 9:49 AM Jiri Olsa <[email protected]> wrote:
>
> On Thu, Jul 12, 2018 at 09:34:45AM -0700, Stephane Eranian wrote:
> > Hi Jiri,
> > On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
> > >
> > > Stephan reported, that pipe mode does not carry the group
> > > information and thus the piped report won't display the
> > > grouped output for following command:
> > >
> > Thanks for fixing this quickly.
>
> could I have your tested/acked by?
>
Acked-by: Stephane Eranian <[email protected]>

> > I think we should have more testing on the pipe mode, in general.
>
> yea, we should
>
> jirka
>
> >
> > > # perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report
> > >
> > > It has no idea about the group setup, so it will display
> > > events separately:
> > >
> > > # Overhead Command Shared Object ...
> > > # ........ ............... .......................
> > > #
> > > 6.71% swapper [kernel.kallsyms]
> > > 2.28% offlineimap libpython2.7.so.1.0
> > > 0.78% perf [kernel.kallsyms]
> > > ...
> > >
> > > Fixing GROUP_DESC feature record to be synthesized in pipe mode,
> > > so the report output is grouped if there's group defined in record:
> > >
> > > # Overhead Command Shared ...
> > > # ........................ ............... .......
> > > #
> > > 7.57% 0.16% 0.30% swapper [kernel
> > > 1.87% 3.15% 2.46% offlineimap libpyth
> > > 1.33% 0.00% 0.00% perf [kernel
> > > ...
> > >
> > > Cc: David Carrillo-Cisneros <[email protected]>
> > > Reported-by: Stephane Eranian <[email protected]>
> > > Link: http://lkml.kernel.org/n/[email protected]
> > > Signed-off-by: Jiri Olsa <[email protected]>
> > > ---
> > > tools/perf/util/header.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > > index 59fcc790c865..af9aaf28f976 100644
> > > --- a/tools/perf/util/header.c
> > > +++ b/tools/perf/util/header.c
> > > @@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
> > > FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
> > > FEAT_OPN(BRANCH_STACK, branch_stack, false),
> > > FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
> > > - FEAT_OPN(GROUP_DESC, group_desc, false),
> > > + FEAT_OPR(GROUP_DESC, group_desc, false),
> > > FEAT_OPN(AUXTRACE, auxtrace, false),
> > > FEAT_OPN(STAT, stat, false),
> > > FEAT_OPN(CACHE, cache, true),
> > > --
> > > 2.17.1
> > >

2018-07-19 14:29:58

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Em Thu, Jul 12, 2018 at 11:18:05PM -0700, Stephane Eranian escreveu:
> Hi Jiri,
> On Thu, Jul 12, 2018 at 9:49 AM Jiri Olsa <[email protected]> wrote:
> >
> > On Thu, Jul 12, 2018 at 09:34:45AM -0700, Stephane Eranian wrote:
> > > Hi Jiri,
> > > On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
> > > >
> > > > Stephan reported, that pipe mode does not carry the group
> > > > information and thus the piped report won't display the
> > > > grouped output for following command:
> > > >
> > > Thanks for fixing this quickly.
> >
> > could I have your tested/acked by?

> Acked-by: Stephane Eranian <[email protected]>

Applying, Stephane, please consider providing a

Tested-by: Stephane Eranian <[email protected]>

When you actually applied the patch, built and tested, so that we can
have this reflect better what actually was done.

Acked-by is more like hey, I briefly looked at the patch, looks good.
I.e. no actual test was performed, which I think wasn't the case here,
but will keep what you provided (Acked-by) as I'm not sure you actually
tested.

Thanks,

- Arnaldo

> > > I think we should have more testing on the pipe mode, in general.
> >
> > yea, we should
> >
> > jirka
> >
> > >
> > > > # perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report
> > > >
> > > > It has no idea about the group setup, so it will display
> > > > events separately:
> > > >
> > > > # Overhead Command Shared Object ...
> > > > # ........ ............... .......................
> > > > #
> > > > 6.71% swapper [kernel.kallsyms]
> > > > 2.28% offlineimap libpython2.7.so.1.0
> > > > 0.78% perf [kernel.kallsyms]
> > > > ...
> > > >
> > > > Fixing GROUP_DESC feature record to be synthesized in pipe mode,
> > > > so the report output is grouped if there's group defined in record:
> > > >
> > > > # Overhead Command Shared ...
> > > > # ........................ ............... .......
> > > > #
> > > > 7.57% 0.16% 0.30% swapper [kernel
> > > > 1.87% 3.15% 2.46% offlineimap libpyth
> > > > 1.33% 0.00% 0.00% perf [kernel
> > > > ...
> > > >
> > > > Cc: David Carrillo-Cisneros <[email protected]>
> > > > Reported-by: Stephane Eranian <[email protected]>
> > > > Link: http://lkml.kernel.org/n/[email protected]
> > > > Signed-off-by: Jiri Olsa <[email protected]>
> > > > ---
> > > > tools/perf/util/header.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > > > index 59fcc790c865..af9aaf28f976 100644
> > > > --- a/tools/perf/util/header.c
> > > > +++ b/tools/perf/util/header.c
> > > > @@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
> > > > FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
> > > > FEAT_OPN(BRANCH_STACK, branch_stack, false),
> > > > FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
> > > > - FEAT_OPN(GROUP_DESC, group_desc, false),
> > > > + FEAT_OPR(GROUP_DESC, group_desc, false),
> > > > FEAT_OPN(AUXTRACE, auxtrace, false),
> > > > FEAT_OPN(STAT, stat, false),
> > > > FEAT_OPN(CACHE, cache, true),
> > > > --
> > > > 2.17.1
> > > >

2018-07-19 15:18:08

by Stephane Eranian

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Hi Arnaldo,
On Thu, Jul 19, 2018 at 7:29 AM Arnaldo Carvalho de Melo
<[email protected]> wrote:
>
> Em Thu, Jul 12, 2018 at 11:18:05PM -0700, Stephane Eranian escreveu:
> > Hi Jiri,
> > On Thu, Jul 12, 2018 at 9:49 AM Jiri Olsa <[email protected]> wrote:
> > >
> > > On Thu, Jul 12, 2018 at 09:34:45AM -0700, Stephane Eranian wrote:
> > > > Hi Jiri,
> > > > On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
> > > > >
> > > > > Stephan reported, that pipe mode does not carry the group
> > > > > information and thus the piped report won't display the
> > > > > grouped output for following command:
> > > > >
> > > > Thanks for fixing this quickly.
> > >
> > > could I have your tested/acked by?
>
> > Acked-by: Stephane Eranian <[email protected]>
>
> Applying, Stephane, please consider providing a
>
Sorry about that.

Tested-by: Stephane Eranian <[email protected]>

>
> When you actually applied the patch, built and tested, so that we can
> have this reflect better what actually was done.
>
> Acked-by is more like hey, I briefly looked at the patch, looks good.
> I.e. no actual test was performed, which I think wasn't the case here,
> but will keep what you provided (Acked-by) as I'm not sure you actually
> tested.
>
> Thanks,
>
> - Arnaldo
>
> > > > I think we should have more testing on the pipe mode, in general.
> > >
> > > yea, we should
> > >
> > > jirka
> > >
> > > >
> > > > > # perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report
> > > > >
> > > > > It has no idea about the group setup, so it will display
> > > > > events separately:
> > > > >
> > > > > # Overhead Command Shared Object ...
> > > > > # ........ ............... .......................
> > > > > #
> > > > > 6.71% swapper [kernel.kallsyms]
> > > > > 2.28% offlineimap libpython2.7.so.1.0
> > > > > 0.78% perf [kernel.kallsyms]
> > > > > ...
> > > > >
> > > > > Fixing GROUP_DESC feature record to be synthesized in pipe mode,
> > > > > so the report output is grouped if there's group defined in record:
> > > > >
> > > > > # Overhead Command Shared ...
> > > > > # ........................ ............... .......
> > > > > #
> > > > > 7.57% 0.16% 0.30% swapper [kernel
> > > > > 1.87% 3.15% 2.46% offlineimap libpyth
> > > > > 1.33% 0.00% 0.00% perf [kernel
> > > > > ...
> > > > >
> > > > > Cc: David Carrillo-Cisneros <[email protected]>
> > > > > Reported-by: Stephane Eranian <[email protected]>
> > > > > Link: http://lkml.kernel.org/n/[email protected]
> > > > > Signed-off-by: Jiri Olsa <[email protected]>
> > > > > ---
> > > > > tools/perf/util/header.c | 2 +-
> > > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > > > > index 59fcc790c865..af9aaf28f976 100644
> > > > > --- a/tools/perf/util/header.c
> > > > > +++ b/tools/perf/util/header.c
> > > > > @@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
> > > > > FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
> > > > > FEAT_OPN(BRANCH_STACK, branch_stack, false),
> > > > > FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
> > > > > - FEAT_OPN(GROUP_DESC, group_desc, false),
> > > > > + FEAT_OPR(GROUP_DESC, group_desc, false),
> > > > > FEAT_OPN(AUXTRACE, auxtrace, false),
> > > > > FEAT_OPN(STAT, stat, false),
> > > > > FEAT_OPN(CACHE, cache, true),
> > > > > --
> > > > > 2.17.1
> > > > >

2018-07-19 15:57:16

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf tools: Synthesize GROUP_DESC feature in pipe mode

Em Thu, Jul 19, 2018 at 08:17:03AM -0700, Stephane Eranian escreveu:
> Hi Arnaldo,
> On Thu, Jul 19, 2018 at 7:29 AM Arnaldo Carvalho de Melo
> <[email protected]> wrote:
> >
> > Em Thu, Jul 12, 2018 at 11:18:05PM -0700, Stephane Eranian escreveu:
> > > Hi Jiri,
> > > On Thu, Jul 12, 2018 at 9:49 AM Jiri Olsa <[email protected]> wrote:
> > > >
> > > > On Thu, Jul 12, 2018 at 09:34:45AM -0700, Stephane Eranian wrote:
> > > > > Hi Jiri,
> > > > > On Thu, Jul 12, 2018 at 6:52 AM Jiri Olsa <[email protected]> wrote:
> > > > > >
> > > > > > Stephan reported, that pipe mode does not carry the group
> > > > > > information and thus the piped report won't display the
> > > > > > grouped output for following command:
> > > > > >
> > > > > Thanks for fixing this quickly.
> > > >
> > > > could I have your tested/acked by?
> >
> > > Acked-by: Stephane Eranian <[email protected]>
> >
> > Applying, Stephane, please consider providing a
> >
> Sorry about that.
>
> Tested-by: Stephane Eranian <[email protected]>

Just replaced the Acked-by with this one.

Thanks!

- Arnado

Subject: [tip:perf/core] perf tools: Synthesize GROUP_DESC feature in pipe mode

Commit-ID: e8fedff1cc729fd227924305152ccc6f580e8c83
Gitweb: https://git.kernel.org/tip/e8fedff1cc729fd227924305152ccc6f580e8c83
Author: Jiri Olsa <[email protected]>
AuthorDate: Thu, 12 Jul 2018 15:52:02 +0200
Committer: Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 24 Jul 2018 14:53:20 -0300

perf tools: Synthesize GROUP_DESC feature in pipe mode

Stephan reported, that pipe mode does not carry the group information
and thus the piped report won't display the grouped output for following
command:

# perf record -e '{cycles,instructions,branches}' -a sleep 4 | perf report

It has no idea about the group setup, so it will display events
separately:

# Overhead Command Shared Object ...
# ........ ............... .......................
#
6.71% swapper [kernel.kallsyms]
2.28% offlineimap libpython2.7.so.1.0
0.78% perf [kernel.kallsyms]
...

Fix GROUP_DESC feature record to be synthesized in pipe mode, so the
report output is grouped if there are groups defined in record:

# Overhead Command Shared ...
# ........................ ............... .......
#
7.57% 0.16% 0.30% swapper [kernel
1.87% 3.15% 2.46% offlineimap libpyth
1.33% 0.00% 0.00% perf [kernel
...

Reported-by: Stephane Eranian <[email protected]>
Signed-off-by: Jiri Olsa <[email protected]>
Tested-by: Arnaldo Carvalho de Melo <[email protected]>
Tested-by: Stephane Eranian <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: David Ahern <[email protected]>
Cc: David Carrillo-Cisneros <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/header.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 653ff65aa2c3..5af58aac91ad 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2587,7 +2587,7 @@ static const struct feature_ops feat_ops[HEADER_LAST_FEATURE] = {
FEAT_OPR(NUMA_TOPOLOGY, numa_topology, true),
FEAT_OPN(BRANCH_STACK, branch_stack, false),
FEAT_OPR(PMU_MAPPINGS, pmu_mappings, false),
- FEAT_OPN(GROUP_DESC, group_desc, false),
+ FEAT_OPR(GROUP_DESC, group_desc, false),
FEAT_OPN(AUXTRACE, auxtrace, false),
FEAT_OPN(STAT, stat, false),
FEAT_OPN(CACHE, cache, true),