[PATCH v1 0/4] perf e_flags support for CSKY

Ian Rogers posted 4 patches 2 weeks ago
tools/perf/builtin-script.c                   |  38 +++--
tools/perf/builtin-trace.c                    |  12 +-
tools/perf/util/annotate.c                    |   5 +-
tools/perf/util/disasm.c                      |   5 +-
tools/perf/util/disasm.h                      |   2 +-
tools/perf/util/dso.c                         | 139 ++++++++++++------
tools/perf/util/dso.h                         |  12 +-
tools/perf/util/parse-regs-options.c          |   4 +-
.../perf/util/perf-regs-arch/perf_regs_csky.c |  13 +-
tools/perf/util/perf_regs.c                   |   4 +-
tools/perf/util/perf_regs.h                   |   4 +-
.../scripting-engines/trace-event-python.c    |  17 ++-
tools/perf/util/session.c                     |  26 ++--
tools/perf/util/thread.c                      |  62 +++++---
tools/perf/util/thread.h                      |  16 +-
tools/perf/util/unwind-libdw.c                |   9 +-
tools/perf/util/unwind-libdw.h                |   1 +
17 files changed, 244 insertions(+), 125 deletions(-)
[PATCH v1 0/4] perf e_flags support for CSKY
Posted by Ian Rogers 2 weeks ago
The ELF machine type for CSKY is insufficent to describe the perf
registers, the e_flags from the ELF header is also required. Expand
the thread__e_machine and associated APIs to optionally fill in an
e_flags output field. For uses in `perf trace` the e_flags doesn't
matter and the e_flags needn't be computed. For `perf annotate` the
e_flags are computed and passed around, however, this is optimized so
the e_flags are only read for EM_CSKY. Call chain unwinding needs to
know about perf registers during recording and in the unwinding logic,
this is similarly wired up with the e_flags.

Ian Rogers (4):
  perf dso: Factor out e_machine reading for use in thread
  perf thread: Add optional e_flags output argument to thread__e_machine
  perf perf_regs: Accurately compute register names for CSKY
  perf unwind-libdw: Wire up e_flags for CSKY

 tools/perf/builtin-script.c                   |  38 +++--
 tools/perf/builtin-trace.c                    |  12 +-
 tools/perf/util/annotate.c                    |   5 +-
 tools/perf/util/disasm.c                      |   5 +-
 tools/perf/util/disasm.h                      |   2 +-
 tools/perf/util/dso.c                         | 139 ++++++++++++------
 tools/perf/util/dso.h                         |  12 +-
 tools/perf/util/parse-regs-options.c          |   4 +-
 .../perf/util/perf-regs-arch/perf_regs_csky.c |  13 +-
 tools/perf/util/perf_regs.c                   |   4 +-
 tools/perf/util/perf_regs.h                   |   4 +-
 .../scripting-engines/trace-event-python.c    |  17 ++-
 tools/perf/util/session.c                     |  26 ++--
 tools/perf/util/thread.c                      |  62 +++++---
 tools/perf/util/thread.h                      |  16 +-
 tools/perf/util/unwind-libdw.c                |   9 +-
 tools/perf/util/unwind-libdw.h                |   1 +
 17 files changed, 244 insertions(+), 125 deletions(-)

-- 
2.52.0.457.g6b5491de43-goog
Re: [PATCH v1 0/4] perf e_flags support for CSKY
Posted by Arnaldo Carvalho de Melo 1 week, 4 days ago
On Fri, Jan 23, 2026 at 02:22:05PM -0800, Ian Rogers wrote:
> The ELF machine type for CSKY is insufficent to describe the perf
> registers, the e_flags from the ELF header is also required. Expand
> the thread__e_machine and associated APIs to optionally fill in an
> e_flags output field. For uses in `perf trace` the e_flags doesn't
> matter and the e_flags needn't be computed. For `perf annotate` the
> e_flags are computed and passed around, however, this is optimized so
> the e_flags are only read for EM_CSKY. Call chain unwinding needs to
> know about perf registers during recording and in the unwinding logic,
> this is similarly wired up with the e_flags.
> 
> Ian Rogers (4):
>   perf dso: Factor out e_machine reading for use in thread
>   perf thread: Add optional e_flags output argument to thread__e_machine
>   perf perf_regs: Accurately compute register names for CSKY
>   perf unwind-libdw: Wire up e_flags for CSKY

Thanks, applied to perf-tools-next,

- Arnaldo