linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Likhitha Korrapati <likhitha@linux.ibm.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: irogers@google.com, maddy@linux.ibm.com,
	Disha Goel <disgoel@linux.ibm.com>,
	kjain@linux.ibm.com, adrian.hunter@intel.com,
	linux-perf-users@vger.kernel.org, atrajeev@linux.vnet.ibm.com,
	james.clark@arm.com, jolsa@kernel.org, namhyung@kernel.org,
	disgoel@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] perf test record+probe_libc_inet_pton: Fix call chain match on powerpc
Date: Thu, 30 Nov 2023 16:16:20 +0530	[thread overview]
Message-ID: <6f6d99fd-9f97-d56a-ef56-3b822ae26f1e@linux.ibm.com> (raw)
In-Reply-To: <ZWeljhj9ZH4xrqjw@kernel.org>

Hi Arnaldo,

Thank you for pointing it. From next time I will take care of it.

-Likhitha.

On 30/11/23 02:26, Arnaldo Carvalho de Melo wrote:
> Em Sun, Nov 26, 2023 at 02:09:14AM -0500, Likhitha Korrapati escreveu:
>> The perf test "probe libc's inet_pton & backtrace it with ping" fails on
>> powerpc as below:
>>
>> root@xxx perf]# perf test -v "probe libc's inet_pton & backtrace it with
>> ping"
>>   85: probe libc's inet_pton & backtrace it with ping                 :
>> --- start ---
>> test child forked, pid 96028
>> ping 96056 [002] 127271.101961: probe_libc:inet_pton: (7fffa1779a60)
>> 7fffa1779a60 __GI___inet_pton+0x0
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>> 7fffa172a73c getaddrinfo+0x121c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>> FAIL: expected backtrace entry
>> "gaih_inet.*\+0x[[:xdigit:]]+[[:space:]]\(/usr/lib64/glibc-hwcaps/power10/libc.so.6\)$"
>> got "7fffa172a73c getaddrinfo+0x121c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)"
>> test child finished with -1
>> ---- end ----
> Try to have quoted output, the ones separated by ---- at the beginning
> of the line indented two spaces, so as to avoid:
>
> perf test record+probe_libc_inet_pton: Fix call chain match on powerpc
>
> The perf test "probe libc's inet_pton & backtrace it with ping" fails on
> powerpc as below:
>
> root@xxx perf]# perf test -v "probe libc's inet_pton & backtrace it with
> ping"
>   85: probe libc's inet_pton & backtrace it with ping                 :
>
> # Please enter the commit message for your changes. Lines starting
> # with '#' will be ignored, and an empty message aborts the commit.
> #
> # Author:    Likhitha Korrapati <likhitha@linux.ibm.com>
> # Date:      Sun Nov 26 02:09:14 2023 -0500
>
>
> I'm copy and pasting from the original post, thanks!
>
> - Arnaldo
>
>> probe libc's inet_pton & backtrace it with ping: FAILED!
>>
>> This test installs a probe on libc's inet_pton function, which will use
>> uprobes and then uses perf trace on a ping to localhost. It gets 3
>> levels deep backtrace and checks whether it is what we expected or not.
>>
>> The test started failing from RHEL 9.4 where as it works in previous
>> distro version (RHEL 9.2). Test expects gaih_inet function to be part of
>> backtrace. But in the glibc version (2.34-86) which is part of distro
>> where it fails, this function is missing and hence the test is failing.
>>
>>  From nm and ping command output we can confirm that gaih_inet function
>> is not present in the expected backtrace for glibc version glibc-2.34-86
>>
>> [root@xxx perf]# nm /usr/lib64/glibc-hwcaps/power10/libc.so.6 | grep gaih_inet
>> 00000000001273e0 t gaih_inet_serv
>> 00000000001cd8d8 r gaih_inet_typeproto
>>
>> [root@xxx perf]# perf script -i /tmp/perf.data.6E8
>> ping  104048 [000] 128582.508976: probe_libc:inet_pton: (7fff83779a60)
>>              7fff83779a60 __GI___inet_pton+0x0
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>              7fff8372a73c getaddrinfo+0x121c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>                 11dc73534 [unknown] (/usr/bin/ping)
>>              7fff8362a8c4 __libc_start_call_main+0x84
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>
>> FAIL: expected backtrace entry
>> "gaih_inet.*\+0x[[:xdigit:]]+[[:space:]]\(/usr/lib64/glibc-hwcaps/power10/libc.so.6\)$"
>> got "7fff9d52a73c getaddrinfo+0x121c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)"
>>
>> With version glibc-2.34-60 gaih_inet function is present as part of the
>> expected backtrace. So we cannot just remove the gaih_inet function from
>> the backtrace.
>>
>> [root@xxx perf]# nm /usr/lib64/glibc-hwcaps/power10/libc.so.6 | grep gaih_inet
>> 0000000000130490 t gaih_inet.constprop.0
>> 000000000012e830 t gaih_inet_serv
>> 00000000001d45e4 r gaih_inet_typeproto
>>
>> [root@xxx perf]# ./perf script -i /tmp/perf.data.b6S
>> ping   67906 [000] 22699.591699: probe_libc:inet_pton_3: (7fffbdd80820)
>>              7fffbdd80820 __GI___inet_pton+0x0
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>              7fffbdd31160 gaih_inet.constprop.0+0xcd0
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>              7fffbdd31c7c getaddrinfo+0x14c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>>                 1140d3558 [unknown] (/usr/bin/ping)
>>
>> This patch solves this issue by doing a conditional skip. If there is a
>> gaih_inet function present in the libc then it will be added to the
>> expected backtrace else the function will be skipped from being added
>> to the expected backtrace.
>>
>> Output with the patch
>>
>> [root@xxx perf]# ./perf test -v "probe libc's inet_pton & backtrace it
>> with ping"
>>   83: probe libc's inet_pton & backtrace it with ping                 :
>> --- start ---
>> test child forked, pid 102662
>> ping 102692 [000] 127935.549973: probe_libc:inet_pton: (7fff93379a60)
>> 7fff93379a60 __GI___inet_pton+0x0
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>> 7fff9332a73c getaddrinfo+0x121c
>> (/usr/lib64/glibc-hwcaps/power10/libc.so.6)
>> 11ef03534 [unknown] (/usr/bin/ping)
>> test child finished with 0
>> ---- end ----
>> probe libc's inet_pton & backtrace it with ping: Ok
>>
>> Signed-off-by: Likhitha Korrapati <likhitha@linux.ibm.com>
>> Reported-by: Disha Goel <disgoel@linux.ibm.com>
>> ---
>>   tools/perf/tests/shell/record+probe_libc_inet_pton.sh | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> 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 eebeea6bdc76..72c65570db37 100755
>> --- a/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
>> +++ b/tools/perf/tests/shell/record+probe_libc_inet_pton.sh
>> @@ -45,7 +45,10 @@ trace_libc_inet_pton_backtrace() {
>>   		;;
>>   	ppc64|ppc64le)
>>   		eventattr='max-stack=4'
>> -		echo "gaih_inet.*\+0x[[:xdigit:]]+[[:space:]]\($libc\)$" >> $expected
>> +		# Add gaih_inet to expected backtrace only if it is part of libc.
>> +		if nm $libc | grep -F -q gaih_inet.; then
>> +			echo "gaih_inet.*\+0x[[:xdigit:]]+[[:space:]]\($libc\)$" >> $expected
>> +		fi
>>   		echo "getaddrinfo\+0x[[:xdigit:]]+[[:space:]]\($libc\)$" >> $expected
>>   		echo ".*(\+0x[[:xdigit:]]+|\[unknown\])[[:space:]]\(.*/bin/ping.*\)$" >> $expected
>>   		;;
>> -- 
>> 2.39.1
>>

      reply	other threads:[~2023-11-30 10:47 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-26  7:09 [PATCH] perf test record+probe_libc_inet_pton: Fix call chain match on powerpc Likhitha Korrapati
2023-11-28  9:57 ` Disha Goel
2023-11-28 19:47   ` Ian Rogers
2023-11-29  5:24 ` Athira Rajeev
2023-11-29 20:56 ` Arnaldo Carvalho de Melo
2023-11-30 10:46   ` Likhitha Korrapati [this message]

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=6f6d99fd-9f97-d56a-ef56-3b822ae26f1e@linux.ibm.com \
    --to=likhitha@linux.ibm.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=atrajeev@linux.vnet.ibm.com \
    --cc=disgoel@linux.ibm.com \
    --cc=disgoel@linux.vnet.ibm.com \
    --cc=irogers@google.com \
    --cc=james.clark@arm.com \
    --cc=jolsa@kernel.org \
    --cc=kjain@linux.ibm.com \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.ibm.com \
    --cc=namhyung@kernel.org \
    /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).