Em Wed, May 06, 2020 at 03:45:59PM -0700, Ian Rogers escreveu: > On Thu, Apr 30, 2020 at 8:33 AM Jiri Olsa <jo...@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....@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 <jo...@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.
Well, if someone wants to bear this upfront cost, I can provide all the Dockerfiles + scripts I have to build those images, etc, I just don't have the time right now to invest in learning about travis, etc. That would be awesome. But if people run: make -C tools/perf build-test And: perf test Before sending pull requests, that would as well be fantastic :) - Arnaldo