From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Leo Yan <leo.yan@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
Ravi Bangoria <ravi.bangoria@linux.ibm.com>,
James Clark <james.clark@arm.com>,
German Gomez <german.gomez@arm.com>,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] perf report: Set PERF_SAMPLE_DATA_SRC bit for Arm SPE event
Date: Mon, 18 Apr 2022 18:56:26 -0300 [thread overview]
Message-ID: <Yl3eisj26sHBjokV@kernel.org> (raw)
In-Reply-To: <20220414123201.842754-1-leo.yan@linaro.org>
Em Thu, Apr 14, 2022 at 08:32:01PM +0800, Leo Yan escreveu:
> Since commit bb30acae4c4d ("perf report: Bail out --mem-mode if mem info
> is not available") "perf mem report" and "perf report --mem-mode"
> don't report result if the PERF_SAMPLE_DATA_SRC bit is missed in sample
> type.
>
> The commit ffab48705205 ("perf: arm-spe: Fix perf report --mem-mode")
> partially fixes the issue. It adds PERF_SAMPLE_DATA_SRC bit for Arm SPE
> event, this allows the perf data file generated by kernel v5.18-rc1 or
> later version can be reported properly.
>
> On the other hand, perf tool still fails to be backward compatibility
> for a data file recorded by an older version's perf which contains Arm
> SPE trace data. This patch is a workaround in reporting phase, when
> detects ARM SPE PMU event and without PERF_SAMPLE_DATA_SRC bit, it will
> force to set the bit in the sample type and give a warning info.
Thanks, applied.
- Arnaldo
> Fixes: bb30acae4c4d ("perf report: Bail out --mem-mode if mem info is not available")
> Signed-off-by: Leo Yan <leo.yan@linaro.org>
> Tested-by: German Gomez <german.gomez@arm.com>
> Reviewed-by: James Clark <james.clark@arm.com>
> ---
> v3: Remove warning log, add James' review tag.
> v2: Change event name from "arm_spe_" to "arm_spe";
> Add German's test tag.
>
> tools/perf/builtin-report.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
> index 1ad75c7ba074..afe4a5539ecc 100644
> --- a/tools/perf/builtin-report.c
> +++ b/tools/perf/builtin-report.c
> @@ -353,6 +353,7 @@ static int report__setup_sample_type(struct report *rep)
> struct perf_session *session = rep->session;
> u64 sample_type = evlist__combined_sample_type(session->evlist);
> bool is_pipe = perf_data__is_pipe(session->data);
> + struct evsel *evsel;
>
> if (session->itrace_synth_opts->callchain ||
> session->itrace_synth_opts->add_callchain ||
> @@ -407,6 +408,19 @@ static int report__setup_sample_type(struct report *rep)
> }
>
> if (sort__mode == SORT_MODE__MEMORY) {
> + /*
> + * FIXUP: prior to kernel 5.18, Arm SPE missed to set
> + * PERF_SAMPLE_DATA_SRC bit in sample type. For backward
> + * compatibility, set the bit if it's an old perf data file.
> + */
> + evlist__for_each_entry(session->evlist, evsel) {
> + if (strstr(evsel->name, "arm_spe") &&
> + !(sample_type & PERF_SAMPLE_DATA_SRC)) {
> + evsel->core.attr.sample_type |= PERF_SAMPLE_DATA_SRC;
> + sample_type |= PERF_SAMPLE_DATA_SRC;
> + }
> + }
> +
> if (!is_pipe && !(sample_type & PERF_SAMPLE_DATA_SRC)) {
> ui__error("Selected --mem-mode but no mem data. "
> "Did you call perf record without -d?\n");
> --
> 2.25.1
--
- Arnaldo
next prev parent reply other threads:[~2022-04-18 21:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-14 12:32 [PATCH v3] perf report: Set PERF_SAMPLE_DATA_SRC bit for Arm SPE event Leo Yan
2022-04-18 21:56 ` Arnaldo Carvalho de Melo [this message]
2022-04-19 1:21 ` 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=Yl3eisj26sHBjokV@kernel.org \
--to=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=german.gomez@arm.com \
--cc=james.clark@arm.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=ravi.bangoria@linux.ibm.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.