From: Jiri Olsa <jolsa@kernel.org>
To: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>
Cc: netdev@vger.kernel.org, bpf@vger.kernel.org,
Yonghong Song <yhs@fb.com>, Martin KaFai Lau <kafai@fb.com>,
David Miller <davem@redhat.com>,
John Fastabend <john.fastabend@gmail.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
Wenbo Zhang <ethercflow@gmail.com>,
KP Singh <kpsingh@chromium.org>, Andrii Nakryiko <andriin@fb.com>,
bgregg@netflix.com, Al Viro <viro@zeniv.linux.org.uk>
Subject: [RFC 0/3] bpf: Add d_path helper
Date: Wed, 1 Apr 2020 13:09:04 +0200 [thread overview]
Message-ID: <20200401110907.2669564-1-jolsa@kernel.org> (raw)
hi,
adding d_path helper to return full path for 'path' object.
I originally added and used 'file_path' helper, which did the same,
but used 'struct file' object. Then realized that file_path is just
a wrapper for d_path, so we'd cover more calling sites if we add
d_path helper and allowed resolving BTF object within another object,
so we could call d_path also with file pointer, like:
bpf_d_path(&file->f_path, buf, size);
This feature is mainly to be able to add dpath (filepath originally)
function to bpftrace, which seems to work nicely now, like:
# bpftrace -e 'kretfunc:fget { printf("%s\n", dpath(args->ret->f_path)); }'
I'm not completely sure this is all safe and bullet proof and there's
no other way to do this, hence RFC post.
I'd be happy also with file_path function, but I thought it'd be
a shame not to try to add d_path with the verifier change.
I'm open to any suggestions ;-)
thanks,
jirka
---
Jiri Olsa (3):
bpf: Add support to check if BTF object is nested in another object
bpf: Add d_path helper
selftests/bpf: Add test for d_path helper
include/linux/bpf.h | 3 ++
include/uapi/linux/bpf.h | 14 ++++++-
kernel/bpf/btf.c | 69 +++++++++++++++++++++++++++++++++
kernel/bpf/verifier.c | 18 ++++++++-
kernel/trace/bpf_trace.c | 31 +++++++++++++++
scripts/bpf_helpers_doc.py | 2 +
tools/include/uapi/linux/bpf.h | 14 ++++++-
tools/testing/selftests/bpf/prog_tests/d_path.c | 196 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/bpf/progs/test_d_path.c | 71 ++++++++++++++++++++++++++++++++++
9 files changed, 414 insertions(+), 4 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/d_path.c
create mode 100644 tools/testing/selftests/bpf/progs/test_d_path.c
next reply other threads:[~2020-04-01 11:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-01 11:09 Jiri Olsa [this message]
2020-04-01 11:09 ` [PATCH 1/3] bpf: Add support to check if BTF object is nested in another object Jiri Olsa
2020-04-07 1:16 ` Alexei Starovoitov
2020-04-07 9:37 ` Jiri Olsa
2020-04-01 11:09 ` [PATCH 2/3] bpf: Add d_path helper Jiri Olsa
2020-04-02 14:02 ` Florent Revest
2020-04-03 9:01 ` Jiri Olsa
2020-04-06 2:49 ` Andrii Nakryiko
2020-04-01 11:09 ` [PATCH 3/3] selftests/bpf: Add test for " Jiri Olsa
2020-04-02 14:03 ` [RFC 0/3] bpf: Add " Florent Revest
2020-04-03 8:55 ` Jiri Olsa
2020-04-02 14:21 ` Al Viro
2020-04-03 9:08 ` Jiri Olsa
2020-04-06 3:16 ` Al Viro
2020-04-06 9:09 ` Jiri Olsa
2020-04-06 12:47 ` Al Viro
2020-04-07 1:10 ` Alexei Starovoitov
2020-04-07 8:53 ` Jiri Olsa
2020-04-07 9:27 ` KP Singh
2020-04-07 9:45 ` Jiri Olsa
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=20200401110907.2669564-1-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=bgregg@netflix.com \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@redhat.com \
--cc=ethercflow@gmail.com \
--cc=hawk@kernel.org \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@chromium.org \
--cc=netdev@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.