Commit 14684793 authored by Ian Rogers's avatar Ian Rogers Committed by Namhyung Kim
Browse files

perf test annotate: Use --percent-limit rather than head to reduce output



The annotate test was sped up by Thomas Richter
<tmricht@linux.ibm.com> in commit
658a8805 ("perf test: Speed up test case 70 annotate basic tests")
by reducing the annotate output using head. This causes flakes on
hybrid machines where the first event dumped may not have the samples
for the test within it. Rather than reduce the output using `head`
switch to `--percent-limit 10` which will stop annotate dumping
functions that have an overhead of less than 10%, the noploop program
should be using more.

Add the missing objdump option for the pipe mode version of the
objdump with a command test.

Signed-off-by: default avatarIan Rogers <irogers@google.com>
Tested-by: default avatarThomas Richter <tmricht@linux.ibm.com>
Link: https://lore.kernel.org/r/20250628015832.1271229-1-irogers@google.com


Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
parent 5ceedc09
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -53,21 +53,22 @@ test_basic() {
  # Generate the annotated output file
  if [ "x${mode}" == "xBasic" ]
  then
    perf annotate --no-demangle -i "${perfdata}" --stdio 2> /dev/null > "${perfout}"
    perf annotate --no-demangle -i "${perfdata}" --stdio --percent-limit 10 2> /dev/null > "${perfout}"
  else
    perf annotate --no-demangle -i - --stdio 2> /dev/null < "${perfdata}" > "${perfout}"
    perf annotate --no-demangle -i - --stdio 2> /dev/null --percent-limit 10 < "${perfdata}" > "${perfout}"
  fi

  # check if it has the target symbol
  if ! head -250 "${perfout}" | grep -q "${testsym}"
  if ! grep -q "${testsym}" "${perfout}"
  then
    echo "${mode} annotate [Failed: missing target symbol]"
    cat "${perfout}"
    err=1
    return
  fi

  # check if it has the disassembly lines
  if ! head -250 "${perfout}" | grep -q "${disasm_regex}"
  if ! grep -q "${disasm_regex}" "${perfout}"
  then
    echo "${mode} annotate [Failed: missing disasm output from default disassembler]"
    err=1
@@ -92,11 +93,11 @@ test_basic() {
  # check one more with external objdump tool (forced by --objdump option)
  if [ "x${mode}" == "xBasic" ]
  then
    perf annotate --no-demangle -i "${perfdata}" --objdump=objdump 2> /dev/null > "${perfout}"
    perf annotate --no-demangle -i "${perfdata}" --percent-limit 10 --objdump=objdump 2> /dev/null > "${perfout}"
  else
    perf annotate --no-demangle -i - "${testsym}" 2> /dev/null < "${perfdata}" > "${perfout}"
    perf annotate --no-demangle -i - "${testsym}" --percent-limit 10 --objdump=objdump 2> /dev/null < "${perfdata}" > "${perfout}"
  fi
  if ! head -250 "${perfout}" | grep -q -m 3 "${disasm_regex}"
  if ! grep -q -m 3 "${disasm_regex}" "${perfout}"
  then
    echo "${mode} annotate [Failed: missing disasm output from non default disassembler (using --objdump)]"
    err=1