linux/tools/perf/tests/shell
Thomas Richter 0879e5e5f3 perf test shell: Fix test case probe libc's inet_pton on s390x
The '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 ldd tool to find out the libraries required by "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.

Committer changes:

We can't really use ldd for libc, as in some systems, such as x86_64, it
has hardlinks and then ldd sees one and the kernel the other, so grep
for libc in /proc/self/maps to get the one we'll receive from
PERF_RECORD_MMAP.

Thomas checked this change and acked it.

Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Suggested-by: Hendrik Brückner <brueckner@linux.vnet.ibm.com>
Reviewed-by: Hendrik Brückner <brueckner@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/20171114133409.GN8836@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-11-16 14:50:00 -03:00
..
lib perf test shell: Replace '|&' with '2>&1 |' to work with more shells 2017-08-16 16:23:26 -03:00
probe_vfs_getname.sh perf test shell: Check if 'perf probe' is available, skip tests if not 2017-08-15 10:54:25 -03:00
record+script_probe_vfs_getname.sh perf test shell: Check if 'perf probe' is available, skip tests if not 2017-08-15 10:54:25 -03:00
trace+probe_libc_inet_pton.sh perf test shell: Fix test case probe libc's inet_pton on s390x 2017-11-16 14:50:00 -03:00
trace+probe_vfs_getname.sh perf test shell: Fix check open filename arg using 'perf trace' on s390x 2017-11-16 14:50:00 -03:00