Commit 4a87dea9 authored by Ian Rogers's avatar Ian Rogers Committed by Arnaldo Carvalho de Melo
Browse files

perf test: Workload test of metric and metricgroups



Test every metric and metricgroup with 'true' as a workload. For
metrics, check that we see the metric printed or get unsupported. If the
'true' workload executes too quickly retry with 'perf bench internals
synthesize'.

v3. Fix test condition (thanks to Paul A. Clarke <pc@us.ibm.com>). Add a
    fallback case of a larger workload so that we don't ignore "<not
    counted>".
v2. Switched the workload to something faster.

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Reviewed-by: default avatarJohn Garry <john.garry@huawei.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Clarke <pc@us.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20210917184240.2181186-1-irogers@google.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 0e46c830
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
#!/bin/sh
# perf all metricgroups test
# SPDX-License-Identifier: GPL-2.0

set -e

for m in $(perf list --raw-dump metricgroups); do
  echo "Testing $m"
  perf stat -M "$m" true
done

exit 0
+22 −0
Original line number Diff line number Diff line
#!/bin/sh
# perf all metrics test
# SPDX-License-Identifier: GPL-2.0

set -e

for m in $(perf list --raw-dump metrics); do
  echo "Testing $m"
  result=$(perf stat -M "$m" true 2>&1)
  if [[ ! "$result" =~ "$m" ]] && [[ ! "$result" =~ "<not supported>" ]]; then
    # We failed to see the metric and the events are support. Possibly the
    # workload was too small so retry with something longer.
    result=$(perf stat -M "$m" perf bench internals synthesize 2>&1)
    if [[ ! "$result" =~ "$m" ]]; then
      echo "Metric '$m' not printed in:"
      echo "$result"
      exit 1
    fi
  fi
done

exit 0