Re: [PATCH v4] perf test: Introduce script for data symbol testing

From: Ravi Bangoria
Date: Sat Oct 01 2022 - 01:13:30 EST


>> +# perf mem/c2c internally uses IBS PMU on AMD CPU which doesn't support
>> +# user/kernel filtering and per-process monitoring, spin program on
>> +# specific CPU and test in per-CPU mode.
>> +is_amd=$(egrep -c 'vendor_id.*AuthenticAMD' /proc/cpuinfo)
>> +if (($is_amd >= 1)); then
>> + perf mem record -o ${PERF_DATA} -- -C 0 -- taskset -c 0 $TEST_PROGRAM &
>
> I'm curious why it has "--" before "-C 0"..

IIRC, any command line options placed after -- will be carry forwarded
as is to perf record.

perf mem record [options] does not support -C option. Which means -C 0
will be ignored if user run `perf mem record -C 0`. Ex:

$ sudo ./perf --debug perf-event-open mem record -C 0
[...]
sys_perf_event_open: pid -1 cpu 0 group_fd -1 flags 0 = 5
sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0 = 6
sys_perf_event_open: pid -1 cpu 2 group_fd -1 flags 0 = 7
sys_perf_event_open: pid -1 cpu 3 group_fd -1 flags 0 = 8

OTOH, if I place -C 0 after -- then perf opens event only on cpu0:

$ sudo ./perf --debug perf-event-open mem record -- -C 0
[...]
sys_perf_event_open: pid -1 cpu 0 group_fd -1 flags 0 = 7

Now, perf mem [options] supports -C options but I don't know why
it's not working for me:

$ sudo ./perf --debug perf-event-open mem -C 0 record
[...]
sys_perf_event_open: pid -1 cpu 0 group_fd -1 flags 0 = 5
sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0 = 6
sys_perf_event_open: pid -1 cpu 2 group_fd -1 flags 0 = 7
sys_perf_event_open: pid -1 cpu 3 group_fd -1 flags 0 = 8

Thanks,
Ravi