Commit 8aa1e6e2 authored by Thomas Richter's avatar Thomas Richter Committed by Arnaldo Carvalho de Melo

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: b539deaf ("perf report: Add s390 raw data interpretation for PAI counters")
Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Acked-by: default avatarSumanth 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 1638b11e
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment