2023-03-23 13:41:59

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: perf tools power9 JSON files build breakage on ubuntu 18.04 cross build

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

- Arnaldo


2023-03-23 15:56:33

by Ian Rogers

[permalink] [raw]
Subject: Re: perf tools power9 JSON files build breakage on ubuntu 18.04 cross build

On Thu, Mar 23, 2023 at 6:11 AM Arnaldo Carvalho de Melo
<[email protected]> 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.

Thanks,
Ian

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

2023-03-23 21:55:25

by Benjamin Gray

[permalink] [raw]
Subject: Re: perf tools power9 JSON files build breakage on ubuntu 18.04 cross build

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
> <[email protected]> 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.

2023-03-27 04:33:38

by kajoljain

[permalink] [raw]
Subject: Re: perf tools power9 JSON files build breakage on ubuntu 18.04 cross build



On 3/23/23 18:41, Arnaldo Carvalho de Melo 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.

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

Thanks,
Kajol Jain

>
> A similar fix for s390 was accepted today:
>
>
> https://lore.kernel.org/r/[email protected]
> https://lore.kernel.org/r/ZBwkl77/I31AQk12@osiris

2023-12-15 14:40:09

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: 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:
> On 3/23/23 18:41, Arnaldo Carvalho de Melo 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.

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


2023-12-15 14:43:30

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: 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:
> Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:
> > On 3/23/23 18:41, Arnaldo Carvalho de Melo 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.
>
> > 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

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

--

- Arnaldo

2023-12-15 14:46:11

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: 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:
> Em Fri, Dec 15, 2023 at 11:39:14AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:
> > > > 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.
> >
> > > 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.

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

2023-12-20 08:37:25

by Jing Zhang

[permalink] [raw]
Subject: Re: perf tools arch Arm CMN PMU JSON files build breakage on ubuntu 18.04 cross build



在 2023/12/15 下午10:41, Arnaldo Carvalho de Melo 写道:
> Em Fri, Dec 15, 2023 at 11:39:14AM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Mon, Mar 27, 2023 at 09:52:11AM +0530, kajoljain escreveu:
>>> On 3/23/23 18:41, Arnaldo Carvalho de Melo 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.
>>
>>> 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.
>

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

Thanks,
Jing


> - Arnaldo
>
>> 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)
>>
>