diff options
author | Thomas Richter <tmricht@linux.ibm.com> | 2024-06-07 07:43:52 +0200 |
---|---|---|
committer | Namhyung Kim <namhyung@kernel.org> | 2024-06-07 22:06:44 +0200 |
commit | 658a8805cb604260ae9f35ae5e50012e3d1ed5e3 (patch) | |
tree | 4ed84ce66808341ba144d7701ec8741590bd3919 | |
parent | perf stat: Choose the most disaggregate command line option (diff) | |
download | linux-658a8805cb604260ae9f35ae5e50012e3d1ed5e3.tar.xz linux-658a8805cb604260ae9f35ae5e50012e3d1ed5e3.zip |
perf test: Speed up test case 70 annotate basic tests
On some s390 linux machine (mostly older models) and with debug
packages installed, the test case 'perf annotate basic tests' runs
for some longer time.
Speed up the test and save the output of command perf annotate
in a temporary file. This is used to perform pattern matching via
grep command. This saves on invocation of perf annotate which
runs for some time.
Output before:
# time bash -x tests/shell/annotate.sh >/dev/null 2>&1; echo EXIT CODE $?
real 4m35.543s
user 3m19.442s
sys 1m14.322s
EXIT CODE 0
#
Output after:
# time bash -x tests/shell/annotate.sh >/dev/null 2>&1; echo EXIT CODE $?
real 2m2.881s
user 1m30.980s
sys 0m30.684s
EXIT CODE 0
#
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: gor@linux.ibm.com
Cc: hca@linux.ibm.com
Cc: sumanthk@linux.ibm.com
Cc: svens@linux.ibm.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240607054352.2774936-1-tmricht@linux.ibm.com
-rwxr-xr-x | tools/perf/tests/shell/annotate.sh | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/perf/tests/shell/annotate.sh b/tools/perf/tests/shell/annotate.sh index 1db1e8113d99..b072d9b97387 100755 --- a/tools/perf/tests/shell/annotate.sh +++ b/tools/perf/tests/shell/annotate.sh @@ -15,12 +15,13 @@ skip_test_missing_symbol ${testsym} err=0 perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) +perfout=$(mktemp /tmp/__perf_test.perf.out.XXXXX) testprog="perf test -w noploop" # disassembly format: "percent : offset: instruction (operands ...)" disasm_regex="[0-9]*\.[0-9]* *: *\w*: *\w*" cleanup() { - rm -rf "${perfdata}" + rm -rf "${perfdata}" "${perfout}" rm -rf "${perfdata}".old trap - EXIT TERM INT @@ -41,8 +42,11 @@ test_basic() { return fi + # Generate the annotated output file + perf annotate -i "${perfdata}" --stdio 2> /dev/null > "${perfout}" + # check if it has the target symbol - if ! perf annotate -i "${perfdata}" 2> /dev/null | grep "${testsym}" + if ! grep "${testsym}" "${perfout}" then echo "Basic annotate [Failed: missing target symbol]" err=1 @@ -50,7 +54,7 @@ test_basic() { fi # check if it has the disassembly lines - if ! perf annotate -i "${perfdata}" 2> /dev/null | grep "${disasm_regex}" + if ! grep "${disasm_regex}" "${perfout}" then echo "Basic annotate [Failed: missing disasm output from default disassembler]" err=1 |