perf cs-etm: Improve Coresight zero timestamp warning
authorJames Clark <james.clark@arm.com>
Thu, 29 Jul 2021 15:58:04 +0000 (16:58 +0100)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 3 Aug 2021 20:04:19 +0000 (17:04 -0300)
Only show the warning if the user hasn't already set timeless mode and
improve the text because there was ambiguity around the meaning of '...'

Change the warning to a UI warning instead of printing straight to
stderr because this corrupts the UI when perf report TUI is used. The UI
warning function also handles printing to stderr when in perf script
mode.

Suggested-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: James Clark <james.clark@arm.com>
Reviewed-by: Leo Yan <leo.yan@linaro.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.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: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lore.kernel.org/lkml/20210729155805.2830-6-james.clark@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c

index 9c9039a..84cca3f 100644 (file)
@@ -328,8 +328,11 @@ cs_etm_decoder__do_hard_timestamp(struct cs_etm_queue *etmq,
                 * underflow.
                 */
                packet_queue->cs_timestamp = 0;
-               WARN_ONCE(true, "Zero Coresight timestamp found at Idx:%" OCSD_TRC_IDX_STR
-                               ". Decoding may be improved with --itrace=Z...\n", indx);
+               if (!cs_etm__etmq_is_timeless(etmq))
+                       pr_warning_once("Zero Coresight timestamp found at Idx:%" OCSD_TRC_IDX_STR
+                                       ". Decoding may be improved by prepending 'Z' to your current --itrace arguments.\n",
+                                       indx);
+
        } else if (packet_queue->instr_count > elem->timestamp) {
                /*
                 * Sanity check that the elem->timestamp - packet_queue->instr_count would not