perf tools power9 JSON files build breakage on ubuntu 18.04 cross build

Benjamin Gray bgray at linux.ibm.com
Fri Mar 24 08:51:31 AEDT 2023


On Thu, 2023-03-23 at 08:50 -0700, Ian Rogers wrote:
> On Thu, Mar 23, 2023 at 6:11 AM Arnaldo Carvalho de Melo
> <acme at kernel.org> wrote:
> > 
> > Exception processing pmu-events/arch/powerpc/power9/other.json
> > Traceback (most recent call last):
> >   File "pmu-events/jevents.py", line 997, in <module>
> >     main()
> >   File "pmu-events/jevents.py", line 979, in main
> >     ftw(arch_path, [], preprocess_one_file)
> >   File "pmu-events/jevents.py", line 935, in ftw
> >     ftw(item.path, parents + [item.name], action)
> >   File "pmu-events/jevents.py", line 933, in ftw
> >     action(parents, item)
> >   File "pmu-events/jevents.py", line 514, in preprocess_one_file
> >     for event in read_json_events(item.path, topic):
> >   File "pmu-events/jevents.py", line 388, in read_json_events
> >     events = json.load(open(path), object_hook=JsonEvent)
> >   File "/usr/lib/python3.6/json/__init__.py", line 296, in load
> >     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 0xc2 in
> > position 55090: ordinal not in range(128)
> >   CC      /tmp/build/perf/tests/expr.o
> > 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:679: 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....
> > 
> > 
> > Now jevents is an opt-out feature so I'm noticing these problems.
> > 
> > A similar fix for s390 was accepted today:
> 
> The JEVENTS_ARCH=all make option builds the s390 files even on x86.
> I'm confused as to why that's been working before these fixes.

This is the non-breaking space in the file (UTF8 C2 A0). Telling Python
to decode with UTF8 would work (note it's breaking with the 'ascii'
codec). Setting the environment variable LC_CTYPE="C.UTF-8" sets the
default, or the script can specify explicitly.

But I also doubt the NBS was intentional in the first place.


More information about the Linuxppc-dev mailing list