Re: [PATCH v2 5/6] perf cs-etm: Treat EO_TRACE element as trace discontinuity

From: Mathieu Poirier
Date: Mon Dec 10 2018 - 18:04:52 EST


On Mon, Dec 10, 2018 at 04:53:00PM +0800, Leo Yan wrote:
> If decoder outputs EO_TRACE element, it means the end of the trace
> buffer; this is a discontinuity and in this case the end of trace data
> needs to be saved.
>
> This patch generates CS_ETM_DISCONTINUITY packet for EO_TRACE element
> hereby flushing the end of trace data in cs-etm.c.
>
> Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>
> Cc: Mike Leach <mike.leach@xxxxxxxxxx>
> Cc: Robert Walker <robert.walker@xxxxxxx>
> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
> ---
> tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> index 46b67f1..bcb5c98 100644
> --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> @@ -411,6 +411,7 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
> case OCSD_GEN_TRC_ELEM_UNKNOWN:
> break;
> case OCSD_GEN_TRC_ELEM_NO_SYNC:
> + case OCSD_GEN_TRC_ELEM_EO_TRACE:
> resp = cs_etm_decoder__buffer_discontinuity(decoder,
> trace_chan_id);

If you were to get rid of decoder::trace_on at the beginning of this set you
could put NO_SYNC, EO_TRACE and TRACE_ON together and call
cs_etm_decoder__buffer_discontinuity() only once. I wouldn't mention it if you did
not have to respin but since you do, might as well just do it. But that's
entirely up to you considering, at least in my opinion, that you have addressed
all of Mike and Rob' comments.

If you do not want to deal with decoder::trace_on as part of this set:

Reviewed-by: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>

> decoder->trace_on = false;
> @@ -431,7 +432,6 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
> decoder->packet_buffer[decoder->tail].exc_ret = true;
> break;
> case OCSD_GEN_TRC_ELEM_PE_CONTEXT:
> - case OCSD_GEN_TRC_ELEM_EO_TRACE:
> case OCSD_GEN_TRC_ELEM_ADDR_NACC:
> case OCSD_GEN_TRC_ELEM_TIMESTAMP:
> case OCSD_GEN_TRC_ELEM_CYCLE_COUNT:
> --
> 2.7.4
>