[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <538898bc-3f74-4d21-971e-f61e77b50abe@linaro.org>
Date: Tue, 17 Sep 2024 13:51:20 +0100
From: James Clark <james.clark@...aro.org>
To: Thomas Richter <tmricht@...ux.ibm.com>, linux-kernel@...r.kernel.org,
linux-perf-users@...r.kernel.org, acme@...nel.org, namhyung@...nel.org
Cc: agordeev@...ux.ibm.com, gor@...ux.ibm.com, sumanthk@...ux.ibm.com,
hca@...ux.ibm.com
Subject: Re: [PATCH] perf/test: Speed up test case perf annotate basic tests
On 17/09/2024 09:57, Thomas Richter wrote:
> perf test 70 takes a long time. One culprit is the output of command
> perf annotate. Per default enabled are
> - demangle symbol names
> - interleave source code with assembly code.
> Disable demangle of symbols and abort the annotation
> after the first 250 lines.
>
> This speeds up the test case considerable, for example
> on s390:
>
> Output before:
> # time perf test 70
> 70: perf annotate basic tests : Ok
> .....
> real 2m7.467s
> user 1m26.869s
> sys 0m34.086s
> #
>
> Output after:
> # time perf test 70
> 70: perf annotate basic tests : Ok
>
> real 0m3.341s
> user 0m1.606s
> sys 0m0.362s
> #
>
> Signed-off-by: Thomas Richter <tmricht@...ux.ibm.com>
> Suggested-by: Namhyung Kim <namhyung@...nel.org>
> Cc: Heiko Carstens <hca@...ux.ibm.com>
> Cc: Vasily Gorbik <gor@...ux.ibm.com>
> Cc: Alexander Gordeev <agordeev@...ux.ibm.com>
> ---
> tools/perf/tests/shell/annotate.sh | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/tests/shell/annotate.sh b/tools/perf/tests/shell/annotate.sh
> index b072d9b97387..b28cd95b1d83 100755
> --- a/tools/perf/tests/shell/annotate.sh
> +++ b/tools/perf/tests/shell/annotate.sh
> @@ -43,7 +43,7 @@ test_basic() {
> fi
>
> # Generate the annotated output file
> - perf annotate -i "${perfdata}" --stdio 2> /dev/null > "${perfout}"
> + perf annotate --no-demangle -i "${perfdata}" --stdio 2> /dev/null | head -250 > "${perfout}"
>
> # check if it has the target symbol
> if ! grep "${testsym}" "${perfout}"
> @@ -62,8 +62,8 @@ test_basic() {
> fi
>
> # check again with a target symbol name
> - if ! perf annotate -i "${perfdata}" "${testsym}" 2> /dev/null | \
> - grep -m 3 "${disasm_regex}"
> + if ! perf annotate --no-demangle -i "${perfdata}" "${testsym}" 2> /dev/null | \
> + head -250 | grep -m 3 "${disasm_regex}"
> then
> echo "Basic annotate [Failed: missing disasm output when specifying the target symbol]"
> err=1
> @@ -71,8 +71,8 @@ test_basic() {
> fi
>
> # check one more with external objdump tool (forced by --objdump option)
> - if ! perf annotate -i "${perfdata}" --objdump=objdump 2> /dev/null | \
> - grep -m 3 "${disasm_regex}"
> + if ! perf annotate --no-demangle -i "${perfdata}" --objdump=objdump 2> /dev/null | \
> + head -250 | grep -m 3 "${disasm_regex}"
> then
> echo "Basic annotate [Failed: missing disasm output from non default disassembler (using --objdump)]"
> err=1
Powered by blists - more mailing lists