All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Thomas Richter <tmricht@linux.vnet.ibm.com>
Cc: linux-perf-users@vger.kernel.org, brueckner@linux.vnet.ibm.com
Subject: Re: [PATCH] perf test: fix test case probe libc's inet_pton on s390x
Date: Tue, 14 Nov 2017 10:26:25 -0300	[thread overview]
Message-ID: <20171114132625.GM8836@kernel.org> (raw)
In-Reply-To: <20171114071847.2381-2-tmricht@linux.vnet.ibm.com>

Em Tue, Nov 14, 2017 at 08:18:47AM +0100, Thomas Richter escreveu:
> Perf test case probe libc's inet_pton & backtrace it with ping
> fails on s390x. The reason is the 'realpath /lib64/ld*.so.* | uniq'
> line which returns 2 libraries:
> 
>         root@s35lp76 shell]# realpath /lib64/ld*.so.* | uniq
>         /usr/lib64/ld-2.26.so
>         /usr/lib64/ld_pre_smc.so.1.0.1
>         [root@s35lp76 shell]
> 
> This output makes the perf probe command lines invalid.
> 
> Use tool ldd to find out the libraries required by the bash and
> check if symbol inet_pton is part of the libc library.
> Some distros do not have a /lib64 directory.
> 
> I have also added a check for the existence of an IPv6
> network interface before it is being used.
> 
> Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
> Suggested-by: Hendrik Brückner <brueckner@linux.vnet.ibm.com>
> Reviewed-by: Hendrik Brückner <brueckner@linux.vnet.ibm.com>
> ---
>  tools/perf/tests/shell/trace+probe_libc_inet_pton.sh | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/tests/shell/trace+probe_libc_inet_pton.sh b/tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
> index 7a84d73324e3..b9c913f1a360 100755
> --- a/tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
> +++ b/tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
> @@ -10,8 +10,8 @@
>  
>  . $(dirname $0)/lib/probe.sh
>  
> -ld=$(realpath /lib64/ld*.so.* | uniq)
> -libc=$(echo $ld | sed 's/ld/libc/g')
> +libc=$(ldd $(which bash) 2>/dev/null | fgrep libc | awk '{ print $3 }')
> +nm -g $libc 2>/dev/null | fgrep -q inet_pton || exit 254
>  
>  trace_libc_inet_pton_backtrace() {
>  	idx=0
> @@ -37,6 +37,9 @@ trace_libc_inet_pton_backtrace() {
>  	done
>  }
>  
> +# Check for IPv6 interface existence
> +ip a sh lo | fgrep -q inet6 || exit 2
> +
>  skip_if_no_perf_probe && \
>  perf probe -q $libc inet_pton && \
>  trace_libc_inet_pton_backtrace

Humm, this one is failing:

[root@jouet linux]# ls -ila /usr/lib64/libc-2.25.so 
3151772 -rwxr-xr-x. 2 root root 2163016 Aug 28 11:48 /usr/lib64/libc-2.25.so
[root@jouet linux]# ls -ila /lib64/libc-2.25.so 
3151772 -rwxr-xr-x. 2 root root 2163016 Aug 28 11:48 /lib64/libc-2.25.so
[root@jouet linux]#

[root@jouet linux]# tools/perf/tests/shell/trace+probe_libc_inet_pton.sh
PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.068 ms
--- ::1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.068/0.068/0.068/0.000 ms
0.000 probe_libc:inet_pton:(7fa97fac3d80))
__GI___inet_pton (/usr/lib64/libc-2.25.so)
FAIL: expected backtrace entry 6 ".*inet_pton[[:space:]]\(/lib64/libc.so.6\)$" got "__GI___inet_pton (/usr/lib64/libc-2.25.so)"
[root@jouet linux]#

[root@jouet linux]# ldd `which ping6` | grep 'libc\>'
	libc.so.6 => /lib64/libc.so.6 (0x00007f883df4f000)
[root@jouet linux]#

[root@jouet linux]# ps | grep bash
 3112 pts/3    00:00:00 bash
[root@jouet linux]# ldd `which bash` | grep 'libc\>'
	libc.so.6 => /lib64/libc.so.6 (0x00007fdd0a17f000)
[root@jouet linux]# grep -w libc /proc/3112/maps 
7f0d017ee000-7f0d019b5000 r-xp 00000000 fd:00 3151772  /usr/lib64/libc-2.25.so
7f0d019b5000-7f0d01bb5000 ---p 001c7000 fd:00 3151772  /usr/lib64/libc-2.25.so
7f0d01bb5000-7f0d01bb9000 r--p 001c7000 fd:00 3151772  /usr/lib64/libc-2.25.so
7f0d01bb9000-7f0d01bbb000 rw-p 001cb000 fd:00 3151772  /usr/lib64/libc-2.25.so
[root@jouet linux]#

/me scratches head

Different name, same contents, need to look at the inode... ;-\

- Arnaldo

  reply	other threads:[~2017-11-14 13:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-14  7:18 [PATCH] perf test fix check open filename arg using perf trace on s390x Thomas Richter
2017-11-14  7:18 ` [PATCH] perf test: fix test case probe libc's inet_pton " Thomas Richter
2017-11-14 13:26   ` Arnaldo Carvalho de Melo [this message]
2017-11-14 13:34     ` Arnaldo Carvalho de Melo
2017-11-14 13:47       ` Arnaldo Carvalho de Melo
2017-11-14 13:55         ` Thomas-Mich Richter
2017-11-14 14:58           ` Arnaldo Carvalho de Melo
2017-11-18  8:33       ` [tip:perf/core] perf test shell: Fix " tip-bot for Thomas Richter
2017-11-29  6:31       ` tip-bot for Thomas Richter
2017-11-14 13:13 ` [PATCH] perf test fix check open filename arg using perf trace " Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171114132625.GM8836@kernel.org \
    --to=acme@kernel.org \
    --cc=brueckner@linux.vnet.ibm.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=tmricht@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.