mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Paul A. Clarke" <pc@us.ibm.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Michael Petlan <mpetlan@redhat.com>,
	Andi Kleen <ak@linux.intel.com>, Kajol Jain <kjain@linux.ibm.com>,
	John Garry <john.garry@huawei.com>,
	Stephane Eranian <eranian@google.com>,
	Ian Rogers <irogers@google.com>
Subject: RE: [PATCH 00/18] perf metric: Add support to reuse metric
Date: Wed, 15 Jul 2020 20:25:04 -0500	[thread overview]
Message-ID: <20200716012504.GA27583@oc3272150783.ibm.com> (raw)
In-Reply-To: <20200715214134.GW183694@krava>

On Wed, Jul 15, 2020 at 11:41:34PM +0200, Jiri Olsa wrote:
> On Wed, Jul 15, 2020 at 01:33:27PM -0500, Paul A. Clarke wrote:
> > On Sun, Jul 12, 2020 at 03:26:16PM +0200, Jiri Olsa wrote:
> > > hi,
> > > this patchset is adding the support to reused metric in another 
> > > metric. The metric needs to be referenced by 'metric:' prefix.
> > > 
> > > For example, to define IPC by using CPI with change like:
> > > 
> > >          "BriefDescription": "Instructions Per Cycle (per Logical Processor)",
> > >  -       "MetricExpr": "INST_RETIRED.ANY / CPU_CLK_UNHALTED.THREAD",
> > >  +       "MetricExpr": "1/metric:CPI",
> > >          "MetricGroup": "TopDownL1",
> > >          "MetricName": "IPC"
> > > 
> > > I won't be able to find all the possible places we could
> > > use this at, so I wonder you guys (who was asking for this)
> > > would try it and come up with comments if there's something
> > > missing or we could already use it at some places.
> > > 
> > > It's based on Arnaldo's tmp.perf/core.
> > > 
> > > v2 changes:
> > >   - collected Ian's acks for few patches [Ian]
> > >   - renamed expr__add_id to expr__add_id_val [Ian]
> > >   - renamed expr_parse_data to expr_id_data [Ian]
> > >   - added recursion check [Ian]
> > >   - added metric test for DCache_L2 metric [Ian]
> > >   - added some renames as discussed in review [Ian]
> > > 
> > > Also available in here:
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
> > >   perf/metric
> > 
> > I'm having trouble testing this.
> > 
> > I checked out this tree, and am able to build with a JSON metrics definition
> > file which uses other metrics.  I put this aside, though, because of the
> > following issue.
> > 
> > I built the kernel from this same tree and booted it successfully.
> > However, the metrics are not working correctly.  (I may very well be
> > doing something wrong.)
> 
> if you'll share the metric change I can help debugging that

It fails as described below without any changes from me.

> > The base system is RHEL8, but it's now booted with the new kernel.
> > ```
> > # uname -a
> > Linux system 5.8.0-rc4-g7dd02cf0b #1 SMP Wed Jul 15 12:31:45 EDT 2020 ppc64le ppc64le ppc64le GNU/Linux
> > # perf stat --metrics cpi_breakdown ./load
> > failed: way too many variables
> 
> hm, this ^^^ error string was removed in:
>   43fe337c86a9 perf expr: Migrate expr ids table to a hashmap
> 
> looks like you're not running the correct perf binary

I should've explained this better in my post, but there are two runs of
perf there.  The first is above, and is the perf that comes with the
distribution.  I'll repeat that here:
```
# perf --version
perf version 4.18.0-214.el8.ppc64le
# perf stat --metrics cpi_breakdown ./load >/dev/null             
failed: way too many variables                                                               
 Performance counter stats for './load':                                                     
                                                                                             
           818,130      pm_cmplu_stall_bru        #      0.0 bru_stall_cpi            (0.45%)
     5,013,082,026      pm_run_inst_cmpl                                              (0.45%)
                 0      pm_cmplu_stall_crypto     #      0.0 crypto_stall_cpi         (0.89%)
     6,580,655,094      pm_run_inst_cmpl                                              (0.89%)
        25,729,751      pm_cmplu_stall_dcache_miss #      0.0 dcache_miss_stall_cpi    (1.77%)
     6,690,035,175      pm_run_inst_cmpl                                              (1.77%)
                 0      pm_cmplu_stall_dflong     #      0.0 dflong_stall_cpi         (1.77%)
     6,769,854,632      pm_run_inst_cmpl                                              (1.77%)
                 0      pm_cmplu_stall_dfu        #      0.0 dfu_other_stall_cpi      (0.89%)
[...and LOTS more...]
```

The second example in my previous post was from
git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
branch perf/metric
```
commit 7dd02cf0b9f04ca5339fa97f9a2280ebdd60b1db (grafted, HEAD -> perf/metric, origin/perf/metric)
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Thu Jul 9 13:45:30 2020 +0200

    perf metric: Rename group_list to list
```

This build of `perf` fails:
```
# ~/install/bin/perf --version
perf version 5.8.rc4.g7dd02cf0b9f0
# ~/install/bin/perf stat --metrics cpi_breakdown ./load >/dev/null

 Performance counter stats for './load':

     6,729,400,541      pm_run_inst_cmpl          #     0.00 bru_stall_cpi          
            57,953      pm_cmplu_stall_bru                                          

       1.127319209 seconds time elapsed

       1.124906000 seconds user
       0.000890000 seconds sys
```

PC

  reply	other threads:[~2020-07-16  1:25 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-12 13:26 Jiri Olsa
2020-07-12 13:26 ` [PATCH 01/18] perf metric: Rename expr__add_id to expr__add_val Jiri Olsa
2020-07-14 21:05   ` Ian Rogers
2020-07-16 15:25     ` Arnaldo Carvalho de Melo
2020-07-12 13:26 ` [PATCH 02/18] perf metric: Add struct expr_id_data to keep expr value Jiri Olsa
2020-07-14 21:06   ` Ian Rogers
2020-07-16 15:26     ` Arnaldo Carvalho de Melo
2020-07-12 13:26 ` [PATCH 03/18] perf metric: Add expr__add_id function Jiri Olsa
2020-07-16 15:29   ` Arnaldo Carvalho de Melo
2020-07-16 18:51     ` Jiri Olsa
2020-07-12 13:26 ` [PATCH 04/18] perf metric: Change expr__get_id to return struct expr_id_data Jiri Olsa
2020-07-12 13:26 ` [PATCH 05/18] perf metric: Add expr__del_id function Jiri Olsa
2020-07-14 21:07   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 06/18] perf metric: Add find_metric function Jiri Olsa
2020-07-14 21:09   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 07/18] perf metric: Add add_metric function Jiri Olsa
2020-07-14 21:11   ` Ian Rogers
2020-07-15 21:01     ` Jiri Olsa
2020-07-12 13:26 ` [PATCH 08/18] perf metric: Rename __metricgroup__add_metric to __add_metric Jiri Olsa
2020-07-14 21:11   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 09/18] perf metric: Collect referenced metrics in struct metric_ref_node Jiri Olsa
2020-07-15  0:07   ` Ian Rogers
2020-07-15 21:13     ` Jiri Olsa
2020-07-15 22:05       ` Ian Rogers
2020-07-12 13:26 ` [PATCH 10/18] perf metric: Collect referenced metrics in struct metric_expr Jiri Olsa
2020-07-15  0:09   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 11/18] perf metric: Add referenced metrics to hash data Jiri Olsa
2020-07-13 16:27   ` John Garry
2020-07-13 16:56     ` Jiri Olsa
2020-07-15 18:25   ` Ian Rogers
2020-07-15 21:36     ` Jiri Olsa
2020-07-17 13:51       ` Jiri Olsa
2020-07-12 13:26 ` [PATCH 12/18] perf metric: Compute referenced metrics Jiri Olsa
2020-07-15  0:12   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 13/18] perf metric: Add events for the current group Jiri Olsa
2020-07-15 17:00   ` Ian Rogers
2020-07-15 21:19     ` Jiri Olsa
2020-07-15 22:14       ` Ian Rogers
2020-07-16 10:44         ` Jiri Olsa
2020-07-12 13:26 ` [PATCH 14/18] perf metric: Add cache_miss_cycles to metric parse test Jiri Olsa
2020-07-15 17:04   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 15/18] perf metric: Add DCache_L2 " Jiri Olsa
2020-07-15 17:01   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 16/18] perf metric: Add recursion check when processing nested metrics Jiri Olsa
2020-07-15 17:40   ` Ian Rogers
2020-07-15 21:29     ` Jiri Olsa
2020-07-12 13:26 ` [PATCH 17/18] perf metric: Rename struct egroup to metric Jiri Olsa
2020-07-15 17:42   ` Ian Rogers
2020-07-12 13:26 ` [PATCH 18/18] perf metric: Rename group_list to list Jiri Olsa
2020-07-15 18:04   ` Ian Rogers
2020-07-15 21:32     ` Jiri Olsa
2020-07-15 18:33 ` [PATCH 00/18] perf metric: Add support to reuse metric Paul A. Clarke
2020-07-15 21:41   ` Jiri Olsa
2020-07-16  1:25     ` Paul A. Clarke [this message]
2020-07-16 11:31       ` Jiri Olsa
2020-07-16  7:50 ` John Garry
2020-07-16 11:32   ` Jiri Olsa
2020-07-17 20:03     ` Jiri Olsa

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=20200716012504.GA27583@oc3272150783.ibm.com \
    --to=pc@us.ibm.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=john.garry@huawei.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=kjain@linux.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpetlan@redhat.com \
    --cc=namhyung@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®