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

From: Namhyung Kim
Date: Tue Oct 04 2022 - 14:35:05 EST


On Fri, Sep 30, 2022 at 10:13 PM Ravi Bangoria <ravi.bangoria@xxxxxxx> wrote:
>
> >> +# 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:

Thanks for checking this!

It seems -C works only for perf mem report and eats it for record.
I think we need to fix the option handling.

Thanks,
Namhyung


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