From: Leo Yan <leo.yan@arm.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
James Clark <james.clark@linaro.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Mike Leach <mike.leach@linaro.org>,
John Garry <john.g.garry@oracle.com>,
Will Deacon <will@kernel.org>, Jiri Olsa <jolsa@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Leo Yan <leo.yan@arm.com>
Subject: [PATCH v1 4/6] perf auxtrace: Iterate all AUX events when finish reading
Date: Sun, 21 Jul 2024 21:21:11 +0100 [thread overview]
Message-ID: <20240721202113.380750-5-leo.yan@arm.com> (raw)
In-Reply-To: <20240721202113.380750-1-leo.yan@arm.com>
When finished to read AUX trace data from mmaped buffer, based on the
AUX buffer index the core layer needs to search the corresponding PMU
event and re-enable it to continue tracing.
However, current code only searches the first AUX event. It misses to
search other enabled AUX events, thus, it returns failure if the buffer
index does not belong to the first AUX event.
This patch extends the auxtrace_record__read_finish() function to
search for every enabled AUX events, so all the mmaped buffer indexes
can be covered.
Signed-off-by: Leo Yan <leo.yan@arm.com>
---
tools/perf/util/auxtrace.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
index e2f317063eec..95be330d7e10 100644
--- a/tools/perf/util/auxtrace.c
+++ b/tools/perf/util/auxtrace.c
@@ -670,18 +670,25 @@ static int evlist__enable_event_idx(struct evlist *evlist, struct evsel *evsel,
int auxtrace_record__read_finish(struct auxtrace_record *itr, int idx)
{
struct evsel *evsel;
+ int ret = -EINVAL;
if (!itr->evlist || !itr->pmu)
return -EINVAL;
evlist__for_each_entry(itr->evlist, evsel) {
- if (evsel->core.attr.type == itr->pmu->type) {
+ if (evsel__is_aux_event(evsel)) {
if (evsel->disabled)
- return 0;
- return evlist__enable_event_idx(itr->evlist, evsel, idx);
+ continue;
+ ret = evlist__enable_event_idx(itr->evlist, evsel, idx);
+ if (ret >= 0)
+ return ret;
}
}
- return -EINVAL;
+
+ if (ret < 0)
+ pr_err("Failed to event enable event (idx=%d): %d\n", idx, ret);
+
+ return ret;
}
/*
--
2.34.1
next prev parent reply other threads:[~2024-07-21 20:21 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-21 20:21 [PATCH v1 0/6] perf auxtrace: Support multiple AUX events Leo Yan
2024-07-21 20:21 ` [PATCH v1 1/6] perf pmu: Directly use evsel's PMU pointer Leo Yan
2024-07-22 10:40 ` Adrian Hunter
2024-07-22 14:34 ` Leo Yan
2024-07-22 16:16 ` Ian Rogers
2024-07-22 21:11 ` Leo Yan
2024-07-21 20:21 ` [PATCH v1 2/6] perf auxtrace arm: Set the 'auxtrace' flag for AUX events Leo Yan
2024-07-22 10:49 ` Adrian Hunter
2024-07-22 14:36 ` Leo Yan
2024-07-21 20:21 ` [PATCH v1 3/6] perf auxtrace s390: " Leo Yan
2024-07-22 10:54 ` Adrian Hunter
2024-07-22 14:48 ` Leo Yan
2024-07-21 20:21 ` Leo Yan [this message]
2024-07-22 11:13 ` [PATCH v1 4/6] perf auxtrace: Iterate all AUX events when finish reading Adrian Hunter
2024-07-22 15:09 ` Leo Yan
2024-07-22 15:59 ` Adrian Hunter
2024-07-22 20:52 ` Leo Yan
2024-08-01 1:38 ` Ian Rogers
2024-08-01 15:04 ` Arnaldo Carvalho de Melo
2024-08-03 15:51 ` Leo Yan
2024-07-21 20:21 ` [PATCH v1 5/6] perf arm-spe: Extract evsel setting up Leo Yan
2024-07-21 20:21 ` [PATCH v1 6/6] perf arm-spe: Support multiple Arm SPE events Leo Yan
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=20240721202113.380750-5-leo.yan@arm.com \
--to=leo.yan@arm.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=coresight@lists.linaro.org \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mike.leach@linaro.org \
--cc=namhyung@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
/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®