linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jing Zhang <renyu.zj@linux.alibaba.com>
To: Ian Rogers <irogers@google.com>
Cc: James Clark <james.clark@arm.com>,
	nick Forrington <Nick.Forrington@arm.com>,
	Jumana MP <Jumana.MP@arm.com>, John Garry <john.garry@oracle.com>,
	Will Deacon <will@kernel.org>, Mike Leach <mike.leach@linaro.org>,
	Leo Yan <leo.yan@linaro.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Andrew Kilroy <andrew.kilroy@arm.com>,
	Shuai Xue <xueshuai@linux.alibaba.com>,
	Zhuo Song <zhuo.song@linux.alibaba.com>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	linux-perf-users <linux-perf-users@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RFC 0/6] Add metrics for neoverse-n2
Date: Sun, 20 Nov 2022 11:49:29 +0800	[thread overview]
Message-ID: <045b45ad-e191-5774-fc50-3a94ccfd7761@linux.alibaba.com> (raw)
In-Reply-To: <CAP-5=fW+Z_Tc3BfK1bRKUeKWfxtPfoZXL9D2BhcU1SzNOruSsg@mail.gmail.com>



在 2022/11/20 上午5:46, Ian Rogers 写道:
> On Fri, Nov 18, 2022 at 7:30 PM Jing Zhang <renyu.zj@linux.alibaba.com <mailto:renyu.zj@linux.alibaba.com>> wrote:
>>
>>
>> 在 2022/11/16 下午7:19, James Clark 写道:
>> >
>> >
>> > On 31/10/2022 11:11, Jing Zhang wrote:
>> >> This series add six metricgroups for neoverse-n2, among which, the
>> >> formula of topdown L1 is from the document:
>> >> https://documentation-service.arm.com/static/60250c7395978b529036da86?token= <https://documentation-service.arm.com/static/60250c7395978b529036da86?token=>
>> >>
>> >> Since neoverse-n2 does not yet support topdown L2, metricgroups such
>> >> as Cache, TLB, Branch, InstructionsMix, and PEutilization are added to
>> >> help further analysis of performance bottlenecks.
>> >>
>> >
>> > Hi Jing,
>> >
>> > Thanks for working on this, these metrics look ok to me in general,
>> > although we're currently working on publishing standardised metrics
>> > across all new cores as part of a new project in Arm. This will include
>> > N2, and our ones are very similar (or almost identical) to yours,
>> > barring slightly different group names, metric names, and differences in
>> > things like outputting topdown metrics as percentages.
>> >
>> > We plan to publish our standard metrics some time in the next 2 months.
>> > Would you consider holding off on merging this change so that we have
>> > consistant group names and units going forward? Otherwise N2 would be
>> > the odd one out. I will send you the metrics when they are ready, and we
>> > will have a script to generate perf jsons from them, so you can review.
>> >
>> > We also have a slightly different forumula for one of the top down
>> > metrics which I think would be slightly more accurate. We don't have
>> > anything for your "PE utilization" metrics, which I can raise
>> > internally. It could always be added to perf on top of the standardised
>> > ones if we don't add it to our standard ones.
>> >
>> > Thanks
>> > James
>> >
>>
>> Hi James,
>>
>> Regarding the arm n2 standard metrics last time, is my understanding correct,
>> and does it meet your meaning? If so, may I ask when you will send me the
>> standards you formulate so that I can align with you in time over my patchset.
>> Please communicate this matter so that we can understand each other's schedule.
>>
>> Thanks,
>> Jing
> 
> Hi,
> 
> In past versions of the perf tool the metrics have been pretty broken. If we have something that is good we shouldn't be holding it to a bar of being perfect, we can merge what we have and improve over time. In this case what Jing has prepared may arrive in time for Linux 6.2 whilst the standard metrics may arrive in time for 6.3. I'd suggest merging Jing's work and then improving on it with the standard metrics.
> 
> In terms of the metrics themselves, could we add ScaleUnit? For example:
> 
> +    {
> +        "MetricExpr": "LD_SPEC / INST_SPEC",
> +        "PublicDescription": "The rate of load instructions speculatively executed to overall instructions speclatively executed",
> +        "BriefDescription": "The rate of load instructions speculatively executed to overall instructions speclatively executed",
> +        "MetricGroup": "InstructionMix",
> +        "MetricName": "load_spec_rate"
> +    },
> 
> A ScaleUnit of "100%" would likely make things more readable.
> 

Ok, I'll modify it over your suggestion, making it more readable, and move on with it.

Thanks,
Jing

> Thanks,
> Ian
> 
>> >> with this series on neoverse-n2:
>> >>
>> >> $./perf list metricgroup
>> >>
>> >> List of pre-defined events (to be used in -e):
>> >>
>> >>
>> >> Metric Groups:
>> >>
>> >> Branch
>> >> Cache
>> >> InstructionMix
>> >> PEutilization
>> >> TLB
>> >> TopDownL1
>> >>
>> >>
>> >> $./perf list
>> >>
>> >> ...
>> >> Metric Groups:
>> >>
>> >> Branch:
>> >>   branch_miss_pred_rate
>> >>        [The rate of branches mis-predited to the overall branches]
>> >>   branch_mpki
>> >>        [The rate of branches mis-predicted per kilo instructions]
>> >>   branch_pki
>> >>        [The rate of branches retired per kilo instructions]
>> >> Cache:
>> >>   l1d_cache_miss_rate
>> >>        [The rate of L1 D-Cache misses to the overall L1 D-Cache]
>> >>   l1d_cache_mpki
>> >>        [The rate of L1 D-Cache misses per kilo instructions]
>> >> ...
>> >>
>> >>
>> >> $sudo ./perf stat -a -M TLB sleep 1
>> >>
>> >>  Performance counter stats for 'system wide':
>> >>
>> >>         35,861,936      L1I_TLB                          #     0.00 itlb_walk_rate           (74.91%)
>> >>              5,661      ITLB_WALK                                                            (74.91%)
>> >>         97,279,240      INST_RETIRED                     #     0.07 itlb_mpki                (74.91%)
>> >>              6,851      ITLB_WALK                                                            (74.91%)
>> >>             26,391      DTLB_WALK                        #     0.00 dtlb_walk_rate           (75.07%)
>> >>         35,585,545      L1D_TLB                                                              (75.07%)
>> >>         85,923,244      INST_RETIRED                     #     0.35 dtlb_mpki                (75.11%)
>> >>             29,992      DTLB_WALK                                                            (75.11%)
>> >>
>> >>        1.003450755 seconds time elapsed
>> >>     
>> >>
>> >> Jing Zhang (6):
>> >>   perf vendor events arm64: Add topdown L1 metrics for neoverse-n2
>> >>   perf vendor events arm64: Add TLB metrics for neoverse-n2
>> >>   perf vendor events arm64: Add cache metrics for neoverse-n2
>> >>   perf vendor events arm64: Add branch metrics for neoverse-n2
>> >>   perf vendor events arm64: Add PE utilization metrics for neoverse-n2
>> >>   perf vendor events arm64: Add instruction mix metrics for neoverse-n2
>> >>
>> >>  .../arch/arm64/arm/neoverse-n2/metrics.json        | 247 +++++++++++++++++++++
>> >>  1 file changed, 247 insertions(+)
>> >>  create mode 100644 tools/perf/pmu-events/arch/arm64/arm/neoverse-n2/metrics.json
>> >>

  parent reply	other threads:[~2022-11-20  3:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-31 11:11 [PATCH RFC 0/6] Add metrics for neoverse-n2 Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 1/6] perf vendor events arm64: Add topdown L1 " Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 2/6] perf vendor events arm64: Add TLB " Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 3/6] perf vendor events arm64: Add cache " Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 4/6] perf vendor events arm64: Add branch " Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 5/6] perf vendor events arm64: Add PE utilization " Jing Zhang
2022-10-31 11:11 ` [PATCH RFC 6/6] perf vendor events arm64: Add instruction mix " Jing Zhang
2022-11-14  7:41 ` [RFC PATCH v2 0/6] Add " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 1/6] perf vendor events arm64: Add topdown L1 " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 2/6] perf vendor events arm64: Add TLB " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 3/6] perf vendor events arm64: Add cache " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 4/6] perf vendor events arm64: Add branch " Jing Zhang
2022-11-24 17:14   ` [PATCH v3 5/6] perf vendor events arm64: Add PE utilization " Jing Zhang
2022-11-30 18:58     ` Ian Rogers
2022-12-01 11:08       ` Jing Zhang
2022-12-02 20:05         ` Ian Rogers
2022-12-04  7:10           ` Jing Zhang
2022-11-24 17:14   ` [PATCH v3 6/6] perf vendor events arm64: Add instruction mix " Jing Zhang
2022-11-14  7:41 ` [RFC PATCH v2 1/6] perf vendor events arm64: Add topdown L1 " Jing Zhang
2022-11-14 12:59   ` [External] : " John Garry
2022-11-15  8:43     ` Jing Zhang
2022-11-15 11:19       ` John Garry
2022-11-21  9:53         ` Jing Zhang
2022-11-21 10:22           ` John Garry
2022-11-21 15:17             ` Jing Zhang
2022-11-21 17:55               ` John Garry
2022-11-22  9:24                 ` Jing Zhang
2022-11-22 14:00                 ` James Clark
2022-11-22 15:41                   ` Jing Zhang
2022-11-23 14:26                     ` James Clark
2022-11-24 16:32                       ` Jing Zhang
2022-11-24 16:51                         ` James Clark
2022-11-14  7:41 ` [RFC PATCH v2 2/6] perf vendor events arm64: Add TLB " Jing Zhang
2022-11-14  7:41 ` [RFC PATCH v2 3/6] perf vendor events arm64: Add cache " Jing Zhang
2022-11-14  8:35   ` Xing Zhengjun
2022-11-15  6:28     ` Jing Zhang
2022-11-14  7:41 ` [RFC PATCH v2 4/6] perf vendor events arm64: Add branch " Jing Zhang
2022-11-14  7:41 ` [RFC PATCH v2 5/6] perf vendor events arm64: Add PE utilization " Jing Zhang
2022-11-14  7:42 ` [RFC PATCH v2 6/6] perf vendor events arm64: Add instruction mix " Jing Zhang
2022-11-16 11:19 ` [PATCH RFC 0/6] Add " James Clark
2022-11-16 15:26   ` Jing Zhang
2022-11-21 11:51     ` James Clark
2022-11-22  7:11       ` Jing Zhang
2022-11-22 11:53         ` James Clark
2022-11-19  3:30   ` Jing Zhang
     [not found]     ` <CAP-5=fW+Z_Tc3BfK1bRKUeKWfxtPfoZXL9D2BhcU1SzNOruSsg@mail.gmail.com>
2022-11-20  3:49       ` Jing Zhang [this message]
2022-11-21 11:55       ` James Clark

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=045b45ad-e191-5774-fc50-3a94ccfd7761@linux.alibaba.com \
    --to=renyu.zj@linux.alibaba.com \
    --cc=Jumana.MP@arm.com \
    --cc=Nick.Forrington@arm.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=andrew.kilroy@arm.com \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=john.garry@oracle.com \
    --cc=jolsa@kernel.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mike.leach@linaro.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=will@kernel.org \
    --cc=xueshuai@linux.alibaba.com \
    --cc=zhuo.song@linux.alibaba.com \
    /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;
as well as URLs for NNTP newsgroup(s).