Messages in this thread | | | From | Ian Rogers <> | Date | Wed, 6 May 2020 15:45:59 -0700 | Subject | Re: [PATCH] perf parse-events: Use strcmp to compare the PMU name |
| |
On Thu, Apr 30, 2020 at 8:33 AM Jiri Olsa <jolsa@redhat.com> wrote: > > On Thu, Apr 30, 2020 at 09:45:14PM +0800, Jin, Yao wrote: > > Hi Jiri, > > > > On 4/30/2020 4:45 PM, Jiri Olsa wrote: > > > On Thu, Apr 30, 2020 at 08:36:18AM +0800, Jin Yao wrote: > > > > A big uncore event group is split into multiple small groups which > > > > only include the uncore events from the same PMU. This has been > > > > supported in the commit 3cdc5c2cb924a ("perf parse-events: Handle > > > > uncore event aliases in small groups properly"). > > > > > > > > If the event's PMU name starts to repeat, it must be a new event. > > > > That can be used to distinguish the leader from other members. > > > > But now it only compares the pointer of pmu_name > > > > (leader->pmu_name == evsel->pmu_name). > > > > > > > > If we use "perf stat -M LLC_MISSES.PCIE_WRITE -a" on cascadelakex, > > > > the event list is: > > > > > > > > evsel->name evsel->pmu_name > > > > --------------------------------------------------------------- > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_4 (as leader) > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_2 > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_0 > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_5 > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_3 > > > > unc_iio_data_req_of_cpu.mem_write.part0 uncore_iio_1 > > > > unc_iio_data_req_of_cpu.mem_write.part1 uncore_iio_4 > > > > ...... > > > > > > > > For the event "unc_iio_data_req_of_cpu.mem_write.part1" with > > > > "uncore_iio_4", it should be the event from PMU "uncore_iio_4". > > > > It's not a new leader for this PMU. > > > > > > > > But if we use "(leader->pmu_name == evsel->pmu_name)", the check > > > > would be failed and the event is stored to leaders[] as a new > > > > PMU leader. > > > > > > > > So this patch uses strcmp to compare the PMU name between events. > > > > > > > > Fixes: 3cdc5c2cb924a ("perf parse-events: Handle uncore event aliases in small groups properly") > > > > Signed-off-by: Jin Yao <yao.jin@linux.intel.com> > > > > > > looks good, any chance we could have automated test > > > for this uncore leader setup logic? like maybe the way > > > John did the pmu-events tests? like test will trigger > > > only when there's the pmu/events in the system > > > > > > Acked-by: Jiri Olsa <jolsa@redhat.com> > > > > > > thanks, > > > jirka > > > > > > > > > > I'm considering to use LKP to do the sanity tests for all perf events > > (core/uncore) and perf metrics periodically. It may help us to find the > > regressions on time. > > sounds good ;) thanks > > jirka
I've tested this and would be happy to see this merged. John's bisect found a memory leak fix of mine as the culprit.
Wrt testing, libbpf is using github/travis CI: https://github.com/libbpf/libbpf https://travis-ci.org/libbpf/libbpf Perhaps that kind of set up can automate testing and lower the reviewer burden - but there's upfront cost in setting it up.
Thanks, Ian
| |