Re: [PATCH 4/6] perf: cs-etm: Respect --no-itrace option
From: Leo Yan
Date: Fri Sep 04 2026 - 14:40:29 EST
On Fri, Aug 21, 2026 at 10:50:32AM +0100, James Clark wrote:
[...]
> @@ -3603,27 +3603,49 @@ int cs_etm__process_auxtrace_info_full(union perf_event *event,
> int err = 0;
> int aux_hw_id_found;
> int i;
> - u64 *ptr = NULL;
> + u64 *ptr = (u64 *) auxtrace_info->priv;
> u64 **metadata = NULL;
>
> - /* First the global part */
> - ptr = (u64 *) auxtrace_info->priv;
> - num_cpu = ptr[CS_PMU_TYPE_CPUS] & 0xffffffff;
> + etm = zalloc(sizeof(*etm));
> + if (!etm)
> + return -ENOMEM;
> +
> + session->auxtrace = &etm->auxtrace;
> + etm->auxtrace.free = cs_etm__free;
> + etm->auxtrace.evsel_is_auxtrace = cs_etm__evsel_is_auxtrace;
> + etm->auxtrace.process_event = cs_etm__process_event;
> + etm->auxtrace.process_auxtrace_event = cs_etm__process_auxtrace_event;
> + etm->auxtrace.flush_events = cs_etm__flush_events;
> + etm->auxtrace.free_events = cs_etm__free_events;
> + etm->pmu_type = (unsigned int) ((ptr[CS_PMU_TYPE_CPUS] >> 32) & 0xffffffff);
> +
> + /*
> + * Don't go further than the minimum required to identify this event as
> + * auxtrace with cs_etm__evsel_is_auxtrace() so unleader_auxtrace()
> + * works.
> + */
> + if (auxtrace__dont_decode(session))
> + return 0;
TBH, I don't look in details, currently auxtrace__dont_decode() only
exits in the common util/auxtrace.c, why other AUX trace can work well
the option but cs-etm.c needs particular initialization?
Seems to me, we even don't need to do any initialization in cs-etm.c
if the no-itrace flag is set.