From: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
To: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@redhat.com>,
"Jin, Yao" <yao.jin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
LKML <Linux-kernel@vger.kernel.org>,
Andi Kleen <ak@linux.intel.com>,
kan.liang@intel.com, yao.jin@intel.com,
John Garry <john.garry@huawei.com>
Subject: Re: [PATCH] perf parse-events: Use strcmp to compare the PMU name
Date: Wed, 6 May 2020 20:46:36 -0300 [thread overview]
Message-ID: <20200506234636.GC5377@kernel.org> (raw)
In-Reply-To: <CAP-5=fVLGfr-bYgR=vt0g-0TtxB+-1mLPt59WfiPEPTtRdQh2Q@mail.gmail.com>
Em Wed, May 06, 2020 at 03:45:59PM -0700, Ian Rogers escreveu:
> 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.
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
next prev parent reply other threads:[~2020-05-06 23:46 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-30 0:36 [PATCH] perf parse-events: Use strcmp to compare the PMU name Jin Yao
2020-04-30 8:45 ` Jiri Olsa
2020-04-30 8:54 ` John Garry
2020-04-30 11:15 ` Jiri Olsa
2020-04-30 11:48 ` John Garry
2020-04-30 13:38 ` Jin, Yao
2020-05-07 16:46 ` Arnaldo Carvalho de Melo
2020-05-07 17:24 ` Ian Rogers
2020-04-30 13:45 ` Jin, Yao
2020-04-30 15:32 ` Jiri Olsa
2020-05-06 22:45 ` Ian Rogers
2020-05-06 23:46 ` Arnaldo Carvalho de Melo [this message]
2020-05-07 16:44 ` Arnaldo Carvalho de Melo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200506234636.GC5377@kernel.org \
--to=arnaldo.melo@gmail.com \
--cc=Linux-kernel@vger.kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=john.garry@huawei.com \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=kan.liang@intel.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=yao.jin@intel.com \
--cc=yao.jin@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.