linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Leo Yan <leo.yan@arm.com>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Jing Zhang <renyu.zj@linux.alibaba.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Richter <tmricht@linux.ibm.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org,
	xueshuai@linux.alibaba.com, zhuo.song@linux.alibaba.com
Subject: Re: [PATCH] perf/tests: fix record+probe_libc_inet_pton test on aarch64
Date: Sun, 20 Oct 2024 12:35:28 +0100	[thread overview]
Message-ID: <20241020113528.GA3209400@e132581.arm.com> (raw)
In-Reply-To: <ZxGL1LF9mVzrUGOU@google.com>

Hi Namhyung, Jing,

On Thu, Oct 17, 2024 at 03:12:36PM -0700, Namhyung Kim wrote:
> 
> Hello,
> 
> On Tue, Oct 15, 2024 at 03:53:27PM +0800, Jing Zhang wrote:
> > Since commit 1f85d016768f ("perf test record+probe_libc_inet_pton: Fix
> > call chain match on x86_64") remove function getaddrinfo() on expected
> > file, the test failed on aarch64. On aarch64, function getaddrinfo()
> > show up in the call chain.
> >
> > $perf script -i /tmp/perf.data.1PV
> > ping 2588319 [125] 500119.122843: probe_libc:inet_pton: (ffff9a4f7410)
> >             ffff9a4f7410 __GI___inet_pton+0x0 (/usr/lib64/libc-2.32.so)
> >             ffff9a4c5f7c getaddrinfo+0xec (/usr/lib64/libc-2.32.so)
> >             aaaad6d32b38 [unknown] (/usr/bin/ping)
> 
> I'm curious how other ARM folks don't see this.  Does it depend on
> something other?

This test has several dependencies. E.g. libtraceevent and IPv6 (one
of my machines skips the test due to lack IPv6 interface).

This test is definitely a regression on Arm64 machine. I will go back to
check why this test failure is missed in our CI. If have any update,
will let you know.

> Then can we make the line optional like we did on s390 recently?

I verified two distros (one is libc-2.31 and another is libc-2.37), both of
them have the symbol "getaddrinfo":

Machine 1:

  # nm -D /usr/lib/aarch64-linux-gnu/libc-2.31.so | grep getaddrinfo
    00000000000bdf58 T getaddrinfo

Machine 2:

  # /usr/lib/aarch64-linux-gnu/libc.so.6
  GNU C Library (Debian GLIBC 2.37-16) stable release version 2.37.

  # nm -D /usr/lib/aarch64-linux-gnu/libc.so.6 | grep getaddrinfo
  00000000000d4da4 T getaddrinfo@@GLIBC_2.17
  0000000000114260 T getaddrinfo_a@@GLIBC_2.34
  0000000000114260 T getaddrinfo_a@GLIBC_2.17

I don't see the need for making the line optional. And I don't see any
requirement for adding conditional check for symbol "gaih_inet".

> > So just remove getaddrinfo() on x86_64.
> 
> I'm not sure how it works on other archs.

I have no idea neither. Maybe this patch is fine - it just rolls back to
old format for rest archs, before if the test can work well on them, then
this patch just makes it to work again.

However, this patch has a syntax error. Please see below.

> > Fixes: 1f85d016768f ("perf test record+probe_libc_inet_pton: Fix call chain match on x86_64")
> > Signed-off-by: Jing Zhang <renyu.zj@linux.alibaba.com>
> > ---
> >  tools/perf/tests/shell/record+probe_libc_inet_pton.sh | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> > index 47a26f2..09d7b0b 100755
> > --- a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> > +++ b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
> > @@ -52,8 +52,12 @@ trace_libc_inet_pton_backtrace() {
> >               echo "getaddrinfo\+0x[[:xdigit:]]+[[:space:]]\($libc\)$" >> $expected
> >               echo ".*(\+0x[[:xdigit:]]+|\[unknown\])[[:space:]]\(.*/bin/ping.*\)$" >> $expected
> >               ;;
> > +     x86_64)
> > +             eventattr='max-stack=3'
> > +             echo ".*(\+0x[[:xdigit:]]+|\[unknown\])[[:space:]]\(.*/bin/ping.*\)$" >> $expected

Please add ";;" at here to break switch, otherwise, it reports syntax
error.

With this change:

Tested-by: Leo Yan <leo.yan@arm.com>

Thanks for the fixing!

> >       *)
> >               eventattr='max-stack=3'
> > +             echo "getaddrinfo\+0x[[:xdigit:]]+[[:space:]]\($libc\)$" >> $expected
> >               echo ".*(\+0x[[:xdigit:]]+|\[unknown\])[[:space:]]\(.*/bin/ping.*\)$" >> $expected
> >               ;;
> >       esac
> > --
> > 1.8.3.1
> >
> 

  reply	other threads:[~2024-10-20 11:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-15  7:53 [PATCH] perf/tests: fix record+probe_libc_inet_pton test on aarch64 Jing Zhang
2024-10-17 22:12 ` Namhyung Kim
2024-10-20 11:35   ` Leo Yan [this message]
2024-10-25 13:20     ` Leo Yan

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=20241020113528.GA3209400@e132581.arm.com \
    --to=leo.yan@arm.com \
    --cc=acme@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=renyu.zj@linux.alibaba.com \
    --cc=tmricht@linux.ibm.com \
    --cc=xueshuai@linux.alibaba.com \
    --cc=zhuo.song@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).