Re: [PATCH] perf vendor events power10: Update JSON/events

From: Arnaldo Carvalho de Melo
Date: Wed Jul 31 2024 - 16:16:58 EST


On Wed, Jul 31, 2024 at 04:44:49PM -0300, Arnaldo Carvalho de Melo wrote:
> On Fri, Jul 26, 2024 at 11:08:55AM -0300, Arnaldo Carvalho de Melo wrote:
> > On Tue, Jul 23, 2024 at 09:02:23AM -0700, Ian Rogers wrote:
> > > On Mon, Jul 22, 2024 at 10:27 PM Kajol Jain <kjain@xxxxxxxxxxxxx> wrote:
> > > >
> > > > Update JSON/events for power10 platform with additional events.
> > > > Also move PM_VECTOR_LD_CMPL event from others.json to
> > > > frontend.json file.
> > > >
> > > > Signed-off-by: Kajol Jain <kjain@xxxxxxxxxxxxx>
> > >
> > > Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
> >
> > Thanks, applied to tmp.perf-tools-next,
>
> This seems to be causing this:
>
> Exception processing pmu-events/arch/powerpc/power10/others.json
> Traceback (most recent call last):
> File "pmu-events/jevents.py", line 1309, in <module>
> main()
> File "pmu-events/jevents.py", line 1291, in main
> ftw(arch_path, [], preprocess_one_file)
> File "pmu-events/jevents.py", line 1241, in ftw
> ftw(item.path, parents + [item.name], action)
> File "pmu-events/jevents.py", line 1239, in ftw
> action(parents, item)
> File "pmu-events/jevents.py", line 623, in preprocess_one_file
> for event in read_json_events(item.path, topic):
> File "pmu-events/jevents.py", line 440, in read_json_events
> events = json.load(open(path), object_hook=JsonEvent)
> File "/usr/lib/python3.6/json/__init__.py", line 296, in load
> CC /tmp/build/perf/bench/evlist-open-close.o
> return loads(fp.read(),
> File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
> return codecs.ascii_decode(input, self.errors)[0]
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 9231: ordinal not in range(128)
> pmu-events/Build:35: recipe for target '/tmp/build/perf/pmu-events/pmu-events.c' failed
> make[3]: *** [/tmp/build/perf/pmu-events/pmu-events.c] Error 1
> make[3]: *** Deleting file '/tmp/build/perf/pmu-events/pmu-events.c'
> Makefile.perf:763: recipe for target '/tmp/build/perf/pmu-events/pmu-events-in.o' failed
> make[2]: *** [/tmp/build/perf/pmu-events/pmu-events-in.o] Error 2
> make[2]: *** Waiting for unfinished jobs....
> CC /tmp/build/perf/tests/hists_cumulate.o
> CC /tmp/build/perf/arch/powerpc/util/event.o
> CC /tmp/build/perf/bench/breakpoint.o
> CC /tmp/build/perf/builtin-data.o
>
>
> This happened in the past, I'm now trying to figure this out :-\
>
> This was in:
>
> toolsbuilder@five:~$ cat dm.log/ubuntu:18.04-x-powerpc
>
>
> So 32-bit powerpc, ubuntu 18.04

This did the trick, so I fixed it in my repo, please ack, just replacing
’ with ' :-\

- Arnaldo


diff --git a/tools/perf/pmu-events/arch/powerpc/power10/others.json b/tools/perf/pmu-events/arch/powerpc/power10/others.json
index 53ca610152faa237..3789304cb363bbb7 100644
--- a/tools/perf/pmu-events/arch/powerpc/power10/others.json
+++ b/tools/perf/pmu-events/arch/powerpc/power10/others.json
@@ -197,6 +197,6 @@
{
"EventCode": "0x0B0000026880",
"EventName": "PM_L2_SNP_TLBIE_SLBIE_DELAY",
- "BriefDescription": "Cycles when a TLBIE/SLBIEG/SLBIAG that targets this thread's LPAR was in flight while in a hottemp condition. Multiply this count by 1000 to obtain the total number of cycles. This can be divided by PM_L2_SNP_TLBIE_SLBIE_START to obtain the overall efficiency. Note: ’inflight’ means SnpTLB has been sent to core(ie doesn’t include when SnpTLB is in NCU waiting to be launched serially behind different SnpTLB). The NCU Snooper gets in a ’hottemp’ delay window when it detects it is above its TLBIE/SLBIE threshold for process SnpTLBIE/SLBIE with this core. Event count should be multiplied by 2 since the data is coming from a 2:1 clock domain and the data is time sliced across all 4 threads."
+ "BriefDescription": "Cycles when a TLBIE/SLBIEG/SLBIAG that targets this thread's LPAR was in flight while in a hottemp condition. Multiply this count by 1000 to obtain the total number of cycles. This can be divided by PM_L2_SNP_TLBIE_SLBIE_START to obtain the overall efficiency. Note: 'inflight' means SnpTLB has been sent to core(ie doesn't include when SnpTLB is in NCU waiting to be launched serially behind different SnpTLB). The NCU Snooper gets in a 'hottemp' delay window when it detects it is above its TLBIE/SLBIE threshold for process SnpTLBIE/SLBIE with this core. Event count should be multiplied by 2 since the data is coming from a 2:1 clock domain and the data is time sliced across all 4 threads."
}
]