lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ