diff options
| author | Leo Yan <leo.yan@arm.com> | 2026-10-02 12:15:13 +0100 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2026-10-21 16:14:59 -0300 |
| commit | e4c26138ececd62aefac4f4b7f5bcc5c01a06ccd (patch) | |
| tree | 6c5d500c495affb44a644e0a4348b2cb903feffb /scripts/Makefile.thinlto | |
| parent | 18eaa04d945cbdf540f945e260135cd1788f6812 (diff) | |
| download | linux-e4c26138ececd62aefac4f4b7f5bcc5c01a06ccd.tar.gz linux-e4c26138ececd62aefac4f4b7f5bcc5c01a06ccd.zip | |
perf cs-etm: Synthesize missing HW_ID mappings for raw trace
The CoreSight driver emits PERF_RECORD_AUX_OUTPUT_HW_ID via
perf_report_aux_output_id(). If the perf ring buffer is full,
perf_report_aux_output_id() can fail to emit the record and return
silently.
When at least one HW_ID record is present in the file, perf skips the
legacy metadata-only trace ID mapping path. Therefore any raw AUX queue
whose HW_ID record was dropped can be left with an empty traceid_list,
and cs_etm__create_queue_decoders() will not create a decoder for that
queue.
Fix it by ignoring all HW_IDs for unformatted queues and always create
one decoder per queue unconditionally. Trace ID is unused so we can hard
code it to 1 (0 is a special value used in
'pending_timestamp_chan_id' to indicate not pending). We also need put
the same trace ID in the CPU metadata because the relationship between
CPU metadata and traceid_list is bidirectional. Moving
cs_etm__metadata_set_trace_id() into the mapping function solves this
and simplifies existing code. cs_etm__insert_trace_id_node() now does
two things, so rename it to a more generic cs_etm__map_trace_id().
Signed-off-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
