Re: [PATCH v6 10/12] perf tools: Improve IBS error handling

From: Ravi Bangoria
Date: Tue Mar 15 2022 - 03:46:13 EST


Stephane,

On 09-Feb-22 2:46 AM, Stephane Eranian wrote:
> From: Kim Phillips <kim.phillips@xxxxxxx>
>
> improve the error message returned on failed perf_event_open() on AMD when
> using IBS.
>
> Output of executing 'perf record -e ibs_op// true' BEFORE this patch:
>
> The sys_perf_event_open() syscall returned with 22 (Invalid argument)for event (ibs_op//u).
> /bin/dmesg | grep -i perf may provide additional information.
>
> Output after:
>
> AMD IBS cannot exclude kernel events. Try running at a higher privilege level.
>
> Output of executing 'sudo perf record -e ibs_op// true' BEFORE this patch:
>
> Error:
> The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (ibs_op//).
> /bin/dmesg | grep -i perf may provide additional information.
>
> Output after:
>
> Error:
> AMD IBS may only be available in system-wide/per-cpu mode. Try using -a, or -C and workload affinity

This patch seems to be causing regression to perf python test.

Without this patch:

$ sudo ./perf test -vvv 19
19: 'import perf' in python :
--- start ---
test child forked, pid 145391
python usage test: "echo "import sys ; sys.path.append('python'); import perf" | '/usr/bin/python2' "
test child finished with 0
---- end ----
'import perf' in python: Ok

With this patch:

$ sudo ./perf test -vvv 19
19: 'import perf' in python :
--- start ---
test child forked, pid 144415
python usage test: "echo "import sys ; sys.path.append('python'); import perf" | '/usr/bin/python2' "
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: python/perf.so: undefined symbol: perf_env__cpuid
test child finished with -1
---- end ----
'import perf' in python: FAILED!

Thanks,
Ravi