perf cs-etm: Treat EO_TRACE element as trace discontinuity
authorLeo Yan <leo.yan@linaro.org>
Tue, 11 Dec 2018 07:38:27 +0000 (15:38 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 18 Dec 2018 15:23:59 +0000 (12:23 -0300)
If the decoder outputs an 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 a CS_ETM_DISCONTINUITY packet for the EO_TRACE
element hereby flushing the end of trace data in cs-etm.c.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Robert Walker <robert.walker@arm.com>
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/1544513908-16805-8-git-send-email-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c

index bee026e..cda6f07 100644 (file)
@@ -409,6 +409,7 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
        switch (elem->elem_type) {
        case OCSD_GEN_TRC_ELEM_UNKNOWN:
                break;
+       case OCSD_GEN_TRC_ELEM_EO_TRACE:
        case OCSD_GEN_TRC_ELEM_NO_SYNC:
        case OCSD_GEN_TRC_ELEM_TRACE_ON:
                resp = cs_etm_decoder__buffer_discontinuity(decoder,
@@ -425,7 +426,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: