From: John Garry <john.garry@huawei.com>
To: <acme@kernel.org>, <will@kernel.org>, <mark.rutland@arm.com>,
<jolsa@redhat.com>, <irogers@google.com>, <leo.yan@linaro.org>,
<peterz@infradead.org>, <mingo@redhat.com>,
<alexander.shishkin@linux.intel.com>, <namhyung@kernel.org>,
<mathieu.poirier@linaro.org>
Cc: <linuxarm@huawei.com>, <linux-kernel@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <qiangqing.zhang@nxp.com>,
<zhangshaokun@hisilicon.com>, <linux-imx@nxp.com>,
<kjain@linux.ibm.com>, John Garry <john.garry@huawei.com>
Subject: [PATCH RFC v5 08/13] perf evlist: Change perf_evlist__splice_list_tail() ordering
Date: Fri, 6 Nov 2020 20:35:48 +0800 [thread overview]
Message-ID: <1604666153-4187-9-git-send-email-john.garry@huawei.com> (raw)
In-Reply-To: <1604666153-4187-1-git-send-email-john.garry@huawei.com>
Function find_evsel_group() expects events to be ordered such that they
are grouped after their leader.
Modify perf_evlist__splice_list_tail() to guarantee this (ordering).
[Should prob also change the function name]
Signed-off-by: John Garry <john.garry@huawei.com>
---
tools/perf/util/evlist.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 8bdf3d2c907c..b7e4e6d85d59 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -180,11 +180,22 @@ void evlist__remove(struct evlist *evlist, struct evsel *evsel)
void perf_evlist__splice_list_tail(struct evlist *evlist,
struct list_head *list)
{
- struct evsel *evsel, *temp;
+ while (!list_empty(list)) {
+ struct evsel *evsel, *temp, *leader = NULL;
- __evlist__for_each_entry_safe(list, temp, evsel) {
- list_del_init(&evsel->core.node);
- evlist__add(evlist, evsel);
+ __evlist__for_each_entry_safe(list, temp, evsel) {
+ list_del_init(&evsel->core.node);
+ evlist__add(evlist, evsel);
+ leader = evsel;
+ break;
+ }
+
+ __evlist__for_each_entry_safe(list, temp, evsel) {
+ if (evsel->leader == leader) {
+ list_del_init(&evsel->core.node);
+ evlist__add(evlist, evsel);
+ }
+ }
}
}
--
2.26.2
next prev parent reply other threads:[~2020-11-06 12:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-06 12:35 [PATCH RFC v5 00/13] perf pmu-events: Support event aliasing for system PMUs John Garry
2020-11-06 12:35 ` [PATCH RFC v5 01/13] perf jevents: Add support for an extra directory level John Garry
2020-11-13 8:48 ` kajoljain
2020-11-13 9:24 ` John Garry
2020-11-18 4:38 ` kajoljain
2020-11-06 12:35 ` [PATCH RFC v5 02/13] perf jevents: Add support for system events tables John Garry
2020-11-06 12:35 ` [PATCH RFC v5 03/13] perf pmu: Add pmu_id() John Garry
2020-11-06 12:35 ` [PATCH RFC v5 04/13] perf pmu: Add pmu_add_sys_aliases() John Garry
2020-11-06 12:35 ` [PATCH RFC v5 05/13] perf vendor events arm64: Add Architected events smmuv3-pmcg.json John Garry
2020-11-06 12:35 ` [PATCH RFC v5 06/13] perf vendor events arm64: Add hip09 SMMUv3 PMCG events John Garry
2020-11-06 12:35 ` [PATCH RFC v5 07/13] perf vendor events arm64: Add hip09 uncore events John Garry
2020-11-06 12:35 ` John Garry [this message]
2020-11-06 12:35 ` [PATCH RFC v5 09/13] perf metricgroup: Fix metrics using aliases covering multiple PMUs John Garry
2020-11-06 12:35 ` [PATCH RFC v5 10/13] perf metricgroup: Split up metricgroup__print() John Garry
2020-11-06 12:35 ` [PATCH RFC v5 11/13] perf metricgroup: Support printing metric groups for system PMUs John Garry
2020-11-06 12:35 ` [PATCH RFC v5 12/13] perf metricgroup: Support adding metrics " John Garry
2020-11-06 12:35 ` [PATCH RFC v5 13/13] perf vendor events: Add JSON metrics for imx8mm DDR Perf John Garry
2020-11-29 6:25 ` [PATCH RFC v5 00/13] perf pmu-events: Support event aliasing for system PMUs kajoljain
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=1604666153-4187-9-git-send-email-john.garry@huawei.com \
--to=john.garry@huawei.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=jolsa@redhat.com \
--cc=kjain@linux.ibm.com \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=mark.rutland@arm.com \
--cc=mathieu.poirier@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=qiangqing.zhang@nxp.com \
--cc=will@kernel.org \
--cc=zhangshaokun@hisilicon.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®