Commit 85919943 authored by Thomas Richter's avatar Thomas Richter Committed by Namhyung Kim
Browse files

perf test: Fix perf record test for precise_max



On s390 the event instructions can not be used for recording.
This event is only supported by perf stat.

Test that each event cycles and instructions supports sampling.
If the event can not be sampled, skip it.

Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
Suggested-by: default avatarJames Clark <james.clark@linaro.org>
Reviewed-by: default avatarJames Clark <james.clark@linaro.org>
Link: https://lore.kernel.org/r/20250131102756.4185235-2-tmricht@linux.ibm.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 23e0a63c
Loading
Loading
Loading
Loading
+29 −14
Original line number Diff line number Diff line
@@ -273,19 +273,25 @@ test_topdown_leader_sampling() {
}

test_precise_max() {
  local -i skipped=0

  echo "precise_max attribute test"
  if ! perf stat -e "cycles,instructions" true 2> /dev/null
  # Just to make sure event cycles is supported for sampling
  if perf record -o "${perfdata}" -e "cycles" true 2> /dev/null
  then
    echo "precise_max attribute [Skipped no hardware events]"
    return
  fi
  # Just to make sure it doesn't fail
    if ! perf record -o "${perfdata}" -e "cycles:P" true 2> /dev/null
    then
      echo "precise_max attribute [Failed cycles:P event]"
      err=1
      return
    fi
  else
    echo "precise_max attribute [Skipped no cycles:P event]"
    ((skipped+=1))
  fi
  # On s390 event instructions is not supported for perf record
  if perf record -o "${perfdata}" -e "instructions" true 2> /dev/null
  then
    # On AMD, cycles and instructions events are treated differently
    if ! perf record -o "${perfdata}" -e "instructions:P" true 2> /dev/null
    then
@@ -293,7 +299,16 @@ test_precise_max() {
      err=1
      return
    fi
  else
    echo "precise_max attribute [Skipped no instructions:P event]"
    ((skipped+=1))
  fi
  if [ $skipped -eq 2 ]
  then
    echo "precise_max attribute [Skipped no hardware events]"
  else
    echo "precise_max attribute test [Success]"
  fi
}

# raise the limit of file descriptors to minimum