Message ID | 1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com (mailing list archive) |
---|---|
Headers | show |
Series | Add JSON metrics for arm CMN and Yitian710 DDR | expand |
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. > 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. 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 >
在 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 >>