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.poir...@linaro.org>
Cc: Mike Leach <mike.le...@linaro.org>
Cc: Robert Walker <robert.wal...@arm.com>
Signed-off-by: Leo Yan <leo....@linaro.org>
---
 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);
                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

Reply via email to