Skip to contentSkip to conversation

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

DISCUSSION Arnaldo Carvalho de Melo 5 participants 8 messages Mar 23, 2023 – Dec 20, 2023

lore
Share & tools
lore
#0 lore raw

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:

https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/r/ZBwkl77/I31AQk12@osiris

Signature · 1 line
- Arnaldo
#1 lore raw
Quoted 29 lines · Arnaldo Carvalho de Melo

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....

Quoted 3 lines

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.

Thanks,
Ian

Quoted 5 lines

https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/r/ZBwkl77/I31AQk12@osiris
--

- Arnaldo

#2 lore raw
Quoted 35 lines · Ian Rogers
Quoted 33 lines · Arnaldo Carvalho de Melo

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....

Quoted 6 lines
Quoted 3 lines

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.

#3 lore raw
In reply to Arnaldo Carvalho de Melo
Quoted 28 lines · Arnaldo Carvalho de Melo

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....

Quoted 1 line

Now jevents is an opt-out feature so I'm noticing these problems.

Hi Arnaldo,
Thanks for raising it. I will check this issue.

Thanks,
Kajol Jain

Quoted 6 lines

A similar fix for s390 was accepted today:

https://lore.kernel.org/r/[email protected]
https://lore.kernel.org/r/ZBwkl77/I31AQk12@osiris

#4 lore raw

perf tools arch Arm CMN PMU JSON files build breakage on ubuntu 18.04 cross build

Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:

Quoted 28 lines · Arnaldo Carvalho de Melo
Quoted 26 lines

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....

Quoted 3 lines
Quoted 1 line

Now jevents is an opt-out feature so I'm noticing these problems.

Thanks for raising it. I will check this issue.

Now I'm seeing this on:

Exception processing pmu-events/arch/arm64/arm/cmn/sys/cmn.json Traceback (most recent call last):
File "pmu-events/jevents.py", line 1285, in <module>

    main()
  File "pmu-events/jevents.py", line 1267, in main
    ftw(arch_path, [], preprocess_one_file)

File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1215, in ftw
action(parents, item)
File "pmu-events/jevents.py", line 599, in preprocess_one_file
for event in read_json_events(item.path, topic):
File "pmu-events/jevents.py", line 416, 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 0xe2 in position 3071: ordinal not in range(128)

#5 lore raw

Re: perf tools arch Arm CMN PMU JSON files build breakage on ubuntu 18.04 cross build

Em Fri, Dec 15, 2023 at 11:39:14AM -0300, Arnaldo Carvalho de Melo escreveu:

Quoted 29 lines

Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:

Quoted 27 lines · Arnaldo Carvalho de Melo
Quoted 26 lines

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....

Quoted 5 lines
Quoted 3 lines
Quoted 1 line

Now jevents is an opt-out feature so I'm noticing these problems.

Thanks for raising it. I will check this issue.

Now I'm seeing this on:

Jing,

Please take a look at:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d9df8731c0941f3add30f96745a62586a0c9d52

For the fix for the ppc case above.

- Arnaldo

Quoted 24 lines

Exception processing pmu-events/arch/arm64/arm/cmn/sys/cmn.json Traceback (most recent call last):
File "pmu-events/jevents.py", line 1285, in <module>

    main()
  File "pmu-events/jevents.py", line 1267, in main
    ftw(arch_path, [], preprocess_one_file)

File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1215, in ftw
action(parents, item)
File "pmu-events/jevents.py", line 599, in preprocess_one_file
for event in read_json_events(item.path, topic):
File "pmu-events/jevents.py", line 416, 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 0xe2 in position 3071: ordinal not in range(128)

Signature · 1 line
- Arnaldo
#6 lore raw

Re: perf tools arch Arm CMN PMU JSON files build breakage on ubuntu 18.04 cross build

Em Fri, Dec 15, 2023 at 11:41:19AM -0300, Arnaldo Carvalho de Melo escreveu:

Quoted 17 lines

Em Fri, Dec 15, 2023 at 11:39:14AM -0300, Arnaldo Carvalho de Melo escreveu:

Quoted 10 lines

Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:

Quoted 8 lines
Quoted 8 lines

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....

Quoted 5 lines
Quoted 3 lines
Quoted 1 line

Now jevents is an opt-out feature so I'm noticing these problems.

Thanks for raising it. I will check this issue.

Now I'm seeing this on:

Quoted 7 lines

Jing,

Please take a look at:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d9df8731c0941f3add30f96745a62586a0c9d52

For the fix for the ppc case above.

Its the only .json file with that issue:

⬢[acme@toolbox perf-tools-next]$ find tools/perf/pmu-events/ -name "*.json" | xargs file -i | grep -v us-ascii
tools/perf/pmu-events/arch/arm64/arm/cmn/sys/cmn.json: application/json; charset=utf-8
⬢[acme@toolbox perf-tools-next]$

- Arnaldo

#7 lore raw

Re: perf tools arch Arm CMN PMU JSON files build breakage on ubuntu 18.04 cross build

In reply to Arnaldo Carvalho de Melo
Quoted 36 lines · Arnaldo Carvalho de Melo

Em Fri, Dec 15, 2023 at 11:39:14AM -0300, Arnaldo Carvalho de Melo escreveu:

Quoted 29 lines

Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:

Quoted 27 lines · Arnaldo Carvalho de Melo
Quoted 26 lines

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....

Quoted 5 lines
Quoted 3 lines
Quoted 1 line

Now jevents is an opt-out feature so I'm noticing these problems.

Thanks for raising it. I will check this issue.

Now I'm seeing this on:

Quoted 8 lines

Jing,

Please take a look at:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5d9df8731c0941f3add30f96745a62586a0c9d52

For the fix for the ppc case above.

I'm sorry for the breakage. Thanks for the catch! I will fix it soon.

Thanks,
Jing

Quoted 27 lines

- Arnaldo

Quoted 24 lines

Exception processing pmu-events/arch/arm64/arm/cmn/sys/cmn.json Traceback (most recent call last):
File "pmu-events/jevents.py", line 1285, in <module>

    main()
  File "pmu-events/jevents.py", line 1267, in main
    ftw(arch_path, [], preprocess_one_file)

File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1217, in ftw
ftw(item.path, parents + [item.name], action)
File "pmu-events/jevents.py", line 1215, in ftw
action(parents, item)
File "pmu-events/jevents.py", line 599, in preprocess_one_file
for event in read_json_events(item.path, topic):
File "pmu-events/jevents.py", line 416, 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 0xe2 in position 3071: ordinal not in range(128)