summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Richter <tmricht@linux.ibm.com>2023-11-22 10:27:03 +0100
committerArnaldo Carvalho de Melo <acme@redhat.com>2023-11-27 15:38:37 -0300
commit8aa1e6e29a21f6bb99dcaa64d11e97a21f0f9dc1 (patch)
tree031f60992f86a8731e06131ee0ac4b84590e3d87
parent1638b11ef8156c8551f5aaa5799069633593c5fe (diff)
perf report: Remove warning on missing raw data for s390
Command # ./perf report -i /tmp/111 -D > /dev/null emits an error message when a sample for event CRYPTO_ALL in the perf.data file does not contain any raw data. This is ok. Do not trigger this warning when the sample in the perf.data files does not contain any raw data at all. Check for availability of raw data for all events and return if none is available. Output before: # ./perf report -i /tmp/111 -D > /dev/null Invalid CRYPTO_ALL raw data encountered Invalid CRYPTO_ALL raw data encountered Invalid CRYPTO_ALL raw data encountered # Output after: # ./perf report -i /tmp/111 -D > /dev/null # Fixes: b539deafbadb2fc6 ("perf report: Add s390 raw data interpretation for PAI counters") Signed-off-by: Thomas Richter <tmricht@linux.ibm.com> Acked-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Link: https://lore.kernel.org/r/20231122092703.3163191-1-tmricht@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/util/s390-sample-raw.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/perf/util/s390-sample-raw.c b/tools/perf/util/s390-sample-raw.c
index 29a744eeb71e..53383e97ec9d 100644
--- a/tools/perf/util/s390-sample-raw.c
+++ b/tools/perf/util/s390-sample-raw.c
@@ -51,8 +51,6 @@ static bool s390_cpumcfdg_testctr(struct perf_sample *sample)
struct cf_trailer_entry *te;
struct cf_ctrset_entry *cep, ce;
- if (!len)
- return false;
while (offset < len) {
cep = (struct cf_ctrset_entry *)(buf + offset);
ce.def = be16_to_cpu(cep->def);
@@ -234,10 +232,9 @@ struct pai_data { /* Event number and value */
*/
static bool s390_pai_all_test(struct perf_sample *sample)
{
- unsigned char *buf = sample->raw_data;
size_t len = sample->raw_size;
- if (len < 0xa || !buf)
+ if (len < 0xa)
return false;
return true;
}
@@ -299,6 +296,10 @@ void evlist__s390_sample_raw(struct evlist *evlist, union perf_event *event,
if (!evsel)
return;
+ /* Check for raw data in sample */
+ if (!sample->raw_size || !sample->raw_data)
+ return;
+
/* Display raw data on screen */
if (evsel->core.attr.config == PERF_EVENT_CPUM_CF_DIAG) {
if (!evsel->pmu)