[PATCH 00/14] perf cs-etm: Per-thread mode fixes and snapshot wrap support

Arnaldo Carvalho de Melo acme at kernel.org
Sun Sep 13 18:20:31 PDT 2026


On Tue, Aug 11, 2026 at 04:30:03PM +0100, James Clark wrote:
> Fix a few issues with per-thread mode:
>   - With TRBE, thread migrations hit a queue without a decoder assert
>   - On nVHE, everything looks like guest trace instead of host
>   - Tracing multiple threads didn't really work

This series applies cleanly to perf-tools-next but has no Reviewed-by
nor was processed by Sashiko.

Can somebody from the ARM camp take a look at it, please?

Thanks,

- Arnaldo
 
> After adding a tests for those, it turns out there were some snapshot
> bugs not picked up by the other snapshot tests. That showed that the
> different snapshot searches for Intel BTS and Arm SPE were inconsistent
> and I think all tracers can benefit from using the same pointer fixup
> logic, so that gets refactored into the common auxtrace.c. Then SPE can
> just share the Intel BTS search as it was obviously copied from it
> originally. IntelPT keeps the more advanced duplicate data search, but
> in the future that could probably be made the common one and all tracers
> would benefit from using it (except maybe BTS if it always has a very
> small buffer, but I doubt the overhead of the duplicate search would be
> an issue). For now this is more of a refactor rather than behavioral
> change so don't do that yet.
> 
> Signed-off-by: James Clark <james.clark at linaro.org>
> ---
> James Clark (14):
>       perf cs-etm: Fix nVHE per-thread decoding
>       perf cs-etm: Warn for invalid timestamp option
>       perf cs-etm: Turn on context packet timestamps in per-thread mode
>       perf cs-etm: Use per-CPU queues for per-thread mode
>       perf cs-etm: Increase default timestamp generation period
>       perf auxtrace: Turn Intel BTS snapshot search into a generic one
>       perf arm-spe: Use generic snapshot search
>       perf auxtrace: intel-pt: Use new snapshot_has_wrapped callback
>       perf cs-etm: Queue partial AUX records
>       perf cs-etm: Don't print missing buffers in snapshot mode
>       perf auxtrace: cs-etm: Capture wrapped snapshots
>       perf test: Allow infinite named_thread loops
>       perf test: Add test for per-thread mode
>       perf cs-etm: Test multiple per-thread threads
> 
>  Documentation/userspace-api/perf_ring_buffer.rst   |   6 +-
>  tools/perf/Documentation/perf-test.txt             |   2 +-
>  tools/perf/arch/arm/util/cs-etm.c                  |  30 ++++-
>  tools/perf/arch/arm64/util/arm-spe.c               | 147 +--------------------
>  tools/perf/arch/x86/util/intel-bts.c               | 115 +---------------
>  tools/perf/arch/x86/util/intel-pt.c                |  58 +++-----
>  .../perf/tests/shell/coresight/per-thread-multi.sh |  78 +++++++++++
>  tools/perf/tests/shell/coresight/per-thread.sh     |  48 +++++++
>  .../perf/tests/shell/coresight/raw_dump_stress.sh  |   5 -
>  tools/perf/tests/workloads/named_threads.c         |   7 +-
>  tools/perf/util/auxtrace.c                         | 136 +++++++++++++++++--
>  tools/perf/util/auxtrace.h                         |  20 ++-
>  tools/perf/util/cs-etm.c                           |  98 ++++++++++----
>  13 files changed, 382 insertions(+), 368 deletions(-)
> ---
> base-commit: bf10e6ee2ac3034c9068e03eed418fd16961984e
> change-id: 20260605-james-cs-unformatted-per-thread-fix-50e723aa7f0e
> 
> Best regards,
> --  
> James Clark <james.clark at linaro.org>



More information about the linux-arm-kernel mailing list