perf cs-etm: Print the decoder name
Use the real name of the decoder instead of hard-coding "ETM" to avoid confusion when the trace is ETE. This also now distinguishes between ETMv3 and ETMv4. Reviewed-by: Leo Yan <leo.yan@linaro.org> Reviewed-by: Suzuki Poulouse <suzuki.poulose@arm.com> Signed-off-by: James Clark <james.clark@arm.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: John Garry <john.garry@huawei.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Poirier <mathieu.poirier@linaro.org> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Will Deacon <will@kernel.org> Cc: coresight@lists.linaro.org Cc: linux-arm-kernel@lists.infradead.org Link: https //lore.kernel.org/r/20210806134109.1182235-9-james.clark@arm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Родитель
779f414a48
Коммит
56c62f52b6
|
@ -37,6 +37,7 @@ struct cs_etm_decoder {
|
|||
dcd_tree_handle_t dcd_tree;
|
||||
cs_etm_mem_cb_type mem_access;
|
||||
ocsd_datapath_resp_t prev_return;
|
||||
const char *decoder_name;
|
||||
};
|
||||
|
||||
static u32
|
||||
|
@ -615,7 +616,6 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
|
|||
struct cs_etm_trace_params *t_params,
|
||||
struct cs_etm_decoder *decoder)
|
||||
{
|
||||
const char *decoder_name;
|
||||
ocsd_etmv3_cfg config_etmv3;
|
||||
ocsd_etmv4_cfg trace_config_etmv4;
|
||||
ocsd_ete_cfg trace_config_ete;
|
||||
|
@ -626,19 +626,19 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
|
|||
case CS_ETM_PROTO_ETMV3:
|
||||
case CS_ETM_PROTO_PTM:
|
||||
cs_etm_decoder__gen_etmv3_config(t_params, &config_etmv3);
|
||||
decoder_name = (t_params->protocol == CS_ETM_PROTO_ETMV3) ?
|
||||
decoder->decoder_name = (t_params->protocol == CS_ETM_PROTO_ETMV3) ?
|
||||
OCSD_BUILTIN_DCD_ETMV3 :
|
||||
OCSD_BUILTIN_DCD_PTM;
|
||||
trace_config = &config_etmv3;
|
||||
break;
|
||||
case CS_ETM_PROTO_ETMV4i:
|
||||
cs_etm_decoder__gen_etmv4_config(t_params, &trace_config_etmv4);
|
||||
decoder_name = OCSD_BUILTIN_DCD_ETMV4I;
|
||||
decoder->decoder_name = OCSD_BUILTIN_DCD_ETMV4I;
|
||||
trace_config = &trace_config_etmv4;
|
||||
break;
|
||||
case CS_ETM_PROTO_ETE:
|
||||
cs_etm_decoder__gen_ete_config(t_params, &trace_config_ete);
|
||||
decoder_name = OCSD_BUILTIN_DCD_ETE;
|
||||
decoder->decoder_name = OCSD_BUILTIN_DCD_ETE;
|
||||
trace_config = &trace_config_ete;
|
||||
break;
|
||||
default:
|
||||
|
@ -647,7 +647,7 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
|
|||
|
||||
if (d_params->operation == CS_ETM_OPERATION_DECODE) {
|
||||
if (ocsd_dt_create_decoder(decoder->dcd_tree,
|
||||
decoder_name,
|
||||
decoder->decoder_name,
|
||||
OCSD_CREATE_FLG_FULL_DECODER,
|
||||
trace_config, &csid))
|
||||
return -1;
|
||||
|
@ -659,7 +659,7 @@ cs_etm_decoder__create_etm_decoder(struct cs_etm_decoder_params *d_params,
|
|||
|
||||
return 0;
|
||||
} else if (d_params->operation == CS_ETM_OPERATION_PRINT) {
|
||||
if (ocsd_dt_create_decoder(decoder->dcd_tree, decoder_name,
|
||||
if (ocsd_dt_create_decoder(decoder->dcd_tree, decoder->decoder_name,
|
||||
OCSD_CREATE_FLG_PACKET_PROC,
|
||||
trace_config, &csid))
|
||||
return -1;
|
||||
|
@ -791,3 +791,8 @@ void cs_etm_decoder__free(struct cs_etm_decoder *decoder)
|
|||
decoder->dcd_tree = NULL;
|
||||
free(decoder);
|
||||
}
|
||||
|
||||
const char *cs_etm_decoder__get_name(struct cs_etm_decoder *decoder)
|
||||
{
|
||||
return decoder->decoder_name;
|
||||
}
|
||||
|
|
|
@ -104,5 +104,6 @@ int cs_etm_decoder__get_packet(struct cs_etm_packet_queue *packet_queue,
|
|||
struct cs_etm_packet *packet);
|
||||
|
||||
int cs_etm_decoder__reset(struct cs_etm_decoder *decoder);
|
||||
const char *cs_etm_decoder__get_name(struct cs_etm_decoder *decoder);
|
||||
|
||||
#endif /* INCLUDE__CS_ETM_DECODER_H__ */
|
||||
|
|
|
@ -537,8 +537,8 @@ static void cs_etm__dump_event(struct cs_etm_queue *etmq,
|
|||
|
||||
fprintf(stdout, "\n");
|
||||
color_fprintf(stdout, color,
|
||||
". ... CoreSight ETM Trace data: size %zu bytes\n",
|
||||
buffer->size);
|
||||
". ... CoreSight %s Trace data: size %zu bytes\n",
|
||||
cs_etm_decoder__get_name(etmq->decoder), buffer->size);
|
||||
|
||||
do {
|
||||
size_t consumed;
|
||||
|
|
Загрузка…
Ссылка в новой задаче