Messages in this thread | | | Date | Wed, 29 Mar 2023 19:59:21 +0800 | Subject | Re: [PATCH RFC 0/4] Add JSON metrics for arm CMN and Yitian710 DDR | From | Jing Zhang <> |
| |
在 2023/3/28 上午12:51, Ian Rogers 写道: > On Sun, Mar 26, 2023 at 7:46 PM Jing Zhang <renyu.zj@linux.alibaba.com> wrote: >> >> Hi all, >> >> I add an identifier sysfs file for the yitian710 SoC DDR and arm CMN to >> allow userspace to identify the specific implementation of the device, >> so that the perf tool can match the corresponding uncore events and >> metrics through the identifier. Then added several general CMN700 metrics >> and yitian710 soc DDR metrics. > > Thanks! > >> Since the eventid of cmn700 events is different from other events, it >> can't be specified by "EventCode" or "ConfigCode", so in the cmn.json >> file of cmn700, no "EventCode" and "ConfigCode" are added for these >> events. For example, the eventid of "arm_cmn_0/hnf_sf_hit is/": >> cat /sys/bus/event_source/devices/arm_cmn_0/events/hnf_sf_hit >> type=0x5,eventid=0x6 > > This is done to add descriptions to the events? We can add encodings > to jevents.py and the event parsing to handle the names eventid and > type. >
Ok, I will try it.
>> In addition, both cmn700 and ddr PMU can count the information in a die, >> but the same SoC can also be configured with different numbers of dies, >> so it is dificult to design a general expression to obtain metrics in >> different dies. The current yitian710 ddr bandwidth metric describes the >> sum of all dies bandwidth. I would like to ask you, is there any general >> expression can obtain metrics for die? Add an option to specify die? > > So hopefully the logic for this is getting clearer in the > perf-tools-next branch. When perf stat runs it will aggregate in a > number of different ways, if you pass -A it will remove the > aggregation, but you can also use --per-socket, per-die, .. The > metrics take the individual counter values, say instructions and > cycles and produce a metric like IPC. By default all the instruction > counts are aggregated together, the cycles are aggregated together and > then the metric produced on the two aggregated values. When -A or > --per-die are passed, the appropriate amount of aggregation should be > done then the metric computed multiple times. >
Thanks! It is helpful. It solved my problem.
Thanks, Jing
> Are you asking for a way in a metric to take counts from one die and > use them in the other's metric? For example, reads on one die are > writes on the other? This is possible as we have all the counts in the > tool. I've thought about this in the context of some metrics we have > for AMD, but there is no support for this in the tool currently. > > Thanks, > Ian > >> Thanks, >> Jing >> >> Jing Zhang (4): >> driver/perf: Add identifier sysfs file for CMN >> perf vendor events: Add JSON metrics for cmn700 >> driver/perf: Add identifier sysfs file for Yitian 710 DDR >> perf vendor events: Add JSON metrics for Yitian 710 DDR >> >> drivers/perf/alibaba_uncore_drw_pmu.c | 27 ++ >> drivers/perf/arm-cmn.c | 43 +++ >> .../pmu-events/arch/arm64/arm/cmn700/sys/cmn.json | 188 +++++++++++ >> .../arch/arm64/arm/cmn700/sys/metrics.json | 74 ++++ >> .../arm64/freescale/yitian710/sys/ali_drw.json | 373 +++++++++++++++++++++ >> .../arm64/freescale/yitian710/sys/metrics.json | 20 ++ >> tools/perf/pmu-events/jevents.py | 2 + >> 7 files changed, 727 insertions(+) >> create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/cmn.json >> create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/metrics.json >> create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/ali_drw.json >> create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/metrics.json >> >> -- >> 1.8.3.1 >>
| |