From: Namhyung Kim <namhyung@kernel.org>
To: James Clark <james.clark@linaro.org>
Cc: John Garry <john.g.garry@oracle.com>,
Will Deacon <will@kernel.org>, Mike Leach <mike.leach@linaro.org>,
Leo Yan <leo.yan@linux.dev>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
Al Grant <al.grant@arm.com>,
linux-arm-kernel@lists.infradead.org,
linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
Leo Yan <leo.yan@arm.com>
Subject: Re: [PATCH v2 0/6] perf arm_spe: Dump IMPDEF events
Date: Fri, 10 Apr 2026 09:50:16 -0700 [thread overview]
Message-ID: <adkqSLNceF2OQuBo@google.com> (raw)
In-Reply-To: <20260407-james-spe-impdef-decode-v2-0-55d3ef997c48@linaro.org>
Hi James,
On Tue, Apr 07, 2026 at 03:05:14PM +0100, James Clark wrote:
> In the Arm SPE raw data dump, IMPDEF events aren't printed. Add the
> ability to add names for some known events or print the raw event number
> for unknown events.
>
> For example:
>
> $ perf report -D
>
> ... ARM SPE data: size 0xd000 bytes
> 00000000: b0 18 c6 32 80 00 80 ff a0 PC 0xff80008032c618 el1 ns=1
> 00000009: 64 e7 42 00 00 CONTEXT 0x42e7 el1
> 0000000e: 00 00 00 00 00 PAD
> 00000013: 49 00 LD GP-REG
> 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS
>
> On N1 the event line becomes:
>
> 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS LATE-PREFETCH
>
> Or on other cores it becomes:
>
> 00000015: 52 16 10 EV RETIRED L1D-ACCESS TLB-ACCESS IMPDEF:12
>
> Signed-off-by: James Clark <james.clark@linaro.org>
> ---
> Changes in v2:
> - Put MIDR in arm_spe_pkt (Leo)
> - Use for_each_set_bit() (Leo)
> - Use BIT_ULL() to fix 32bit builds (Ian)
> - Don't call strtol() with NULL (Ian)
> - Link to v1: https://lore.kernel.org/r/20260401-james-spe-impdef-decode-v1-0-ad0d372c220c@linaro.org
I'm getting this on 32-bit build.
In file included from /linux/tools/include/linux/bitmap.h:8,
from util/arm-spe-decoder/arm-spe-pkt-decoder.c:11:
util/arm-spe-decoder/arm-spe-pkt-decoder.c: In function 'arm_spe_pkt_desc_event':
util/arm-spe-decoder/arm-spe-pkt-decoder.c:377:37: error: passing argument 1 of 'find_first_bit' from incompatible pointer type [-Werror=incompatible-pointer-types]
377 | for_each_set_bit(i, &payload, 64) {
/linux/tools/include/linux/bitops.h:55:38: note: in definition of macro 'for_each_set_bit'
55 | for ((bit) = find_first_bit((addr), (size)); \
| ^~~~
In file included from /linux/tools/include/linux/bitmap.h:9:
/linux/tools/include/linux/find.h:118:51: note: expected 'const long unsigned int *' but argument is of type 'u64 *' {aka 'long long unsigned int *'}
118 | unsigned long find_first_bit(const unsigned long *addr, unsigned long size)
| ~~~~~~~~~~~~~~~~~~~~~^~~~
Thanks,
Namhyung
>
> ---
> James Clark (6):
> perf arm_spe: Make a function to get the MIDR
> perf arm_spe: Handle missing CPU IDs
> perf arm_spe: Store MIDR in arm_spe_pkt
> perf arm_spe: Turn event name mappings into an array
> perf arm_spe: Decode Arm N1 IMPDEF events
> perf arm_spe: Print remaining IMPDEF event numbers
>
> tools/perf/util/arm-spe-decoder/Build | 2 +
> tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 17 ++-
> tools/perf/util/arm-spe-decoder/arm-spe-decoder.h | 3 +-
> .../util/arm-spe-decoder/arm-spe-pkt-decoder.c | 144 ++++++++++++++-------
> .../util/arm-spe-decoder/arm-spe-pkt-decoder.h | 5 +-
> tools/perf/util/arm-spe.c | 62 ++++++---
> 6 files changed, 158 insertions(+), 75 deletions(-)
> ---
> base-commit: 74e2dbe7be5037a5e5eed6bc1ad562747ac88566
> change-id: 20260331-james-spe-impdef-decode-d944f4fdcff7
>
> Best regards,
> --
> James Clark <james.clark@linaro.org>
>
next prev parent reply other threads:[~2026-04-10 16:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 14:05 [PATCH v2 0/6] perf arm_spe: Dump IMPDEF events James Clark
2026-04-07 14:05 ` [PATCH v2 1/6] perf arm_spe: Make a function to get the MIDR James Clark
2026-04-07 14:05 ` [PATCH v2 2/6] perf arm_spe: Handle missing CPU IDs James Clark
2026-04-07 15:30 ` Leo Yan
2026-04-07 14:05 ` [PATCH v2 3/6] perf arm_spe: Store MIDR in arm_spe_pkt James Clark
2026-04-07 15:41 ` Leo Yan
2026-04-07 14:05 ` [PATCH v2 4/6] perf arm_spe: Turn event name mappings into an array James Clark
2026-04-07 14:05 ` [PATCH v2 5/6] perf arm_spe: Decode Arm N1 IMPDEF events James Clark
2026-04-07 15:44 ` Leo Yan
2026-04-07 14:05 ` [PATCH v2 6/6] perf arm_spe: Print remaining IMPDEF event numbers James Clark
2026-04-07 15:46 ` Leo Yan
2026-04-10 16:50 ` Namhyung Kim [this message]
2026-04-10 22:05 ` [PATCH v2 0/6] perf arm_spe: Dump IMPDEF events 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=adkqSLNceF2OQuBo@google.com \
--to=namhyung@kernel.org \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=al.grant@arm.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@arm.com \
--cc=leo.yan@linux.dev \
--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=mingo@redhat.com \
--cc=peterz@infradead.org \
--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