perf cs-etm: Update ARM's CoreSight hardware tracing OpenCSD library to v1.0.0
authorJames Clark <james.clark@arm.com>
Fri, 8 Jan 2021 14:27:52 +0000 (16:27 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 20 Jan 2021 17:34:20 +0000 (14:34 -0300)
Replace the OCSD_INSTR switch statement with an if to fix compilation
error about unhandled values and avoid this issue again in the future.

Add new OCSD_GEN_TRC_ELEM_SYNC_MARKER and OCSD_GEN_TRC_ELEM_MEMTRANS
enum values to fix unhandled value compilation error. Currently they are
ignored.

Increase the minimum version number to v1.0.0 now that new enum values
are used that are only present in this version.

Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Tested-by: Mike Leach <mike.leach@linaro.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Al Grant <al.grant@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Garry <john.garry@huawei.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20210108142752.27872-1-james.clark@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/build/feature/test-libopencsd.c
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c

index 1547bc2c09505ff80d863e0e2909eb77da26b9f4..52c790b0317b1ee6506c2bfc5b3bb86745213539 100644 (file)
@@ -4,9 +4,9 @@
 /*
  * Check OpenCSD library version is sufficient to provide required features
  */
-#define OCSD_MIN_VER ((0 << 16) | (14 << 8) | (0))
+#define OCSD_MIN_VER ((1 << 16) | (0 << 8) | (0))
 #if !defined(OCSD_VER_NUM) || (OCSD_VER_NUM < OCSD_MIN_VER)
-#error "OpenCSD >= 0.14.0 is required"
+#error "OpenCSD >= 1.0.0 is required"
 #endif
 
 int main(void)
index cd007cc9c283a638b06008a656951a9a6b84e76d..3f4bc40504772acc94ac6cfcc38a000f42854bbe 100644 (file)
@@ -419,19 +419,10 @@ cs_etm_decoder__buffer_range(struct cs_etm_queue *etmq,
        packet->last_instr_subtype = elem->last_i_subtype;
        packet->last_instr_cond = elem->last_instr_cond;
 
-       switch (elem->last_i_type) {
-       case OCSD_INSTR_BR:
-       case OCSD_INSTR_BR_INDIRECT:
+       if (elem->last_i_type == OCSD_INSTR_BR || elem->last_i_type == OCSD_INSTR_BR_INDIRECT)
                packet->last_instr_taken_branch = elem->last_instr_exec;
-               break;
-       case OCSD_INSTR_ISB:
-       case OCSD_INSTR_DSB_DMB:
-       case OCSD_INSTR_WFI_WFE:
-       case OCSD_INSTR_OTHER:
-       default:
+       else
                packet->last_instr_taken_branch = false;
-               break;
-       }
 
        packet->last_instr_size = elem->last_instr_sz;
 
@@ -572,6 +563,8 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
        case OCSD_GEN_TRC_ELEM_EVENT:
        case OCSD_GEN_TRC_ELEM_SWTRACE:
        case OCSD_GEN_TRC_ELEM_CUSTOM:
+       case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
+       case OCSD_GEN_TRC_ELEM_MEMTRANS:
        default:
                break;
        }