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

From: Leo Yan
Date: Thu Oct 06 2022 - 02:04:05 EST


On Tue, Oct 04, 2022 at 11:34:45AM -0700, Namhyung Kim wrote:
> 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 for digging into the issue and fixing, Ravi & Namhyung.

I will send a new patch to drop "--" for CPU list.

Thanks,
Leo