public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: "dsmith at redhat dot com" <sourceware-bugzilla@sourceware.org>
To: systemtap@sourceware.org
Subject: [Bug runtime/22847] ARM OABI syscall tracing issues
Date: Thu, 15 Feb 2018 15:45:00 -0000	[thread overview]
Message-ID: <bug-22847-6586-siZAKOfvMj@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-22847-6586@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=22847

David Smith <dsmith at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dsmith at redhat dot com

--- Comment #3 from David Smith <dsmith at redhat dot com> ---
(In reply to Gustavo Moreira from comment #0)
> The system is an ARMv7 (EABI) but the kernel is compiled with OABI
> compatibility so that it can execute both ABI binaries. Everything is
> working, both sort of binaries can be executed on it but SystemTap struggles
> to trace the OABI syscalls. 
> For instance, syscalls like "execve" and "exit" are traced but "connect" is
> completely ignored. Most likely many other syscalls are ignored as well.

Let's take the example of the "connect" syscall. The connect() system call is
complicated. On some systems, connect() is implemented via sys_connect(). On
other systems, it is implemented via sys_socketcall() (with $call set to
SYS_CONNECT). Systemtap tries to catch the syscall on first entry to the
kernel, and also tries to not give two probe hits on one actual syscall.

Doing this correctly is a bit complicated (see tapset/linux/sysc_connect.stp
for all the details). One technique we use is rejecting the call to
sys_connect() if the syscall number isn't __NR_connect. For your OABI binaries,
it might be possible that you've got a different __NR_connect for each ABI or
that systemtap isn't getting the syscall number correctly for that ABI.

You are going to have to debug this a bit to narrow it down. Some questions to
try to answer:

1) Is your connect syscall implemented via sys_connect() or through
sys_socketcall(), or perhaps through some arch-specific function? Run a test
binary, set a probe on both sys_connect() and sys_socketcall() and see what
gets hit. (If you need a test program, look in
testsuite/systemtap.syscall/connect.c.)

2) Are you getting the correct syscall number for both ABIs? Run your test
program (compiled once for each ABI) and see what _stp_syscall_nr() returns. Is
the number the same for both ABIs?

One more thing. The syscall testsuite should let you know exactly which
syscalls are not working. To run the tests, do the following:

# make installcheck RUNTESTFLAGS="systemtap.syscall/*.exp"

-- 
You are receiving this mail because:
You are the assignee for the bug.

  parent reply	other threads:[~2018-02-15 15:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-22847-6586@http.sourceware.org/bugzilla/>
2018-02-15  6:01 ` mysecondaccountabc at gmail dot com
2018-02-15  6:09 ` mysecondaccountabc at gmail dot com
2018-02-15 15:45 ` dsmith at redhat dot com [this message]
2018-02-15 16:08 ` dsmith at redhat dot com
2018-02-16  4:06 ` mysecondaccountabc at gmail dot com
2018-02-19  6:55 ` mysecondaccountabc at gmail dot com
2018-02-19  7:02 ` mysecondaccountabc at gmail dot com
2018-02-19 14:31 ` dsmith at redhat dot com
2018-02-19 22:42 ` mysecondaccountabc at gmail dot com
2018-02-19 22:53 ` dsmith at redhat dot com
2018-02-20  1:05 ` mysecondaccountabc at gmail dot com
2018-02-20 16:03 ` dsmith at redhat dot com
2018-02-22  0:04 ` gmoreira at gmail dot com
2018-02-22 16:58 ` dsmith at redhat dot com
2018-04-18  6:50 ` gmoreira at gmail dot com
2018-04-18  6:52 ` gmoreira at gmail dot com
2018-04-18  7:05 ` gmoreira at gmail dot com
2018-04-18  7:26 ` gmoreira at gmail dot com
2018-04-30 17:16 ` dsmith at redhat dot com
2018-05-01  2:46 ` gmoreira at gmail dot com
2018-05-01 15:11 ` dsmith at redhat dot com
2023-10-06 15:55 ` wcohen at redhat dot com

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=bug-22847-6586-siZAKOfvMj@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=systemtap@sourceware.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 read-only IMAP folder(s) and NNTP newsgroup(s).