From: Alan Maguire <alan.maguire@oracle.com>
To: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org
Cc: kafai@fb.com, songliubraving@fb.com, yhs@fb.com,
john.fastabend@gmail.com, kpsingh@kernel.org, jolsa@kernel.org,
sunyucong@gmail.com, netdev@vger.kernel.org, bpf@vger.kernel.org,
Alan Maguire <alan.maguire@oracle.com>
Subject: [RFC bpf-next 0/4] libbpf: userspace attach by name
Date: Wed, 12 Jan 2022 16:18:45 +0000 [thread overview]
Message-ID: <1642004329-23514-1-git-send-email-alan.maguire@oracle.com> (raw)
This patch series is a rough attempt to support attach by name for
uprobes and USDT (Userland Static Defined Tracing) probes.
Currently attach for such probes is done by determining the offset
manually, so the aim is to try and mimic the simplicity of kprobe
attach, making use of uprobe opts.
One restriction applies: uprobe attach supports system-wide probing
by specifying "-1" for the pid. That functionality is not supported,
since we need a running process to determine the base address to
subtract to get the uprobe-friendly offset. There may be a way
to do this without a running process, so any suggestions would
be greatly appreciated.
There are probably a bunch of subtleties missing here; the aim
is to see if this is useful and if so hopefully we can refine
it to deal with more complex cases. I tried to handle one case
that came to mind - weak library symbols - but there are probably
other issues when determining which address to use I haven't
thought of.
Alan Maguire (4):
libbpf: support function name-based attach for uprobes
libbpf: support usdt provider/probe name-based attach for uprobes
selftests/bpf: add tests for u[ret]probe attach by name
selftests/bpf: add test for USDT uprobe attach by name
tools/lib/bpf/libbpf.c | 244 +++++++++++++++++++++
tools/lib/bpf/libbpf.h | 17 +-
tools/testing/selftests/bpf/Makefile | 34 +++
.../selftests/bpf/prog_tests/attach_probe.c | 74 ++++++-
.../selftests/bpf/progs/test_attach_probe.c | 24 ++
5 files changed, 391 insertions(+), 2 deletions(-)
--
1.8.3.1
next reply other threads:[~2022-01-12 16:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-12 16:18 Alan Maguire [this message]
2022-01-12 16:18 ` [RFC bpf-next 1/4] libbpf: support function name-based attach for uprobes Alan Maguire
2022-01-12 16:18 ` [RFC bpf-next 2/4] libbpf: support usdt provider/probe " Alan Maguire
2022-01-12 16:18 ` [RFC bpf-next 3/4] selftests/bpf: add tests for u[ret]probe attach by name Alan Maguire
2022-01-12 16:18 ` [RFC bpf-next 4/4] selftests/bpf: add test for USDT uprobe " Alan Maguire
2022-01-12 17:04 ` [RFC bpf-next 0/4] libbpf: userspace " Andrii Nakryiko
2022-01-13 10:29 ` Alan Maguire
2022-01-14 20:48 ` Andrii Nakryiko
2022-01-19 14:03 ` Alan Maguire
2022-01-19 18:49 ` Andrii Nakryiko
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=1642004329-23514-1-git-send-email-alan.maguire@oracle.com \
--to=alan.maguire@oracle.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=sunyucong@gmail.com \
--cc=yhs@fb.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).