From: Wenbo Zhang <ethercflow@gmail.com>
To: bpf@vger.kernel.org
Cc: ast@kernel.org, daniel@iogearbox.net, yhs@fb.com,
andrii.nakryiko@gmail.com, netdev@vger.kernel.org
Subject: [PATCH bpf-next v12 0/2] bpf: adding get_file_path helper
Date: Sat, 14 Dec 2019 23:01:08 -0500 [thread overview]
Message-ID: <cover.1576381511.git.ethercflow@gmail.com> (raw)
In-Reply-To: <afe4deb020b781c76e9df8403a744f88a8725cd2.1575517685.git.ethercflow@gmail.com>
This patch series introduce a bpf helper that can be used to map a file
descriptor to a pathname.
This requirement is mainly discussed here:
https://github.com/iovisor/bcc/issues/237
This implementation supports both local and mountable pseudo file systems,
and ensure we're in user context which is safe for this helper to run.
Changes since v11:
* only allow tracepoints to make sure it won't dead lock
Changes since v10:
* fix missing fput
Changes since v9:
* Associate help patch with its selftests patch to this series
* Refactor selftests code for further simplification
Changes since v8:
* format helper description
Changes since v7:
* Use fget_raw instead of fdget_raw, as fdget_raw is only used inside fs/
* Ensure we're in user context which is safe fot the help to run
* Filter unmountable pseudo filesystem, because they don't have real path
* Supplement the description of this helper function
Changes since v6:
* Fix missing signed-off-by line
Changes since v5:
* Refactor helper avoid unnecessary goto end by having two explicit returns
Changes since v4:
* Rename bpf_fd2path to bpf_get_file_path to be consistent with other
helper's names
* When fdget_raw fails, set ret to -EBADF instead of -EINVAL
* Remove fdput from fdget_raw's error path
* Use IS_ERR instead of IS_ERR_OR_NULL as d_path ether returns a pointer
into the buffer or an error code if the path was too long
* Modify the normal path's return value to return copied string length
including NUL
* Update helper description's Return bits.
* Refactor selftests code for further simplification
Changes since v3:
* Remove unnecessary LOCKDOWN_BPF_READ
* Refactor error handling section for enhanced readability
* Provide a test case in tools/testing/selftests/bpf
* Refactor sefltests code to use real global variables instead of maps
Changes since v2:
* Fix backward compatibility
* Add helper description
* Refactor selftests use global data instead of perf_buffer to simplified
code
* Fix signed-off name
Wenbo Zhang (2):
bpf: add new helper get_file_path for mapping a file descriptor to a
pathname
selftests/bpf: test for bpf_get_file_path() from tracepoint
include/uapi/linux/bpf.h | 29 ++-
kernel/trace/bpf_trace.c | 70 +++++++
tools/include/uapi/linux/bpf.h | 29 ++-
.../selftests/bpf/prog_tests/get_file_path.c | 171 ++++++++++++++++++
.../selftests/bpf/progs/test_get_file_path.c | 43 +++++
5 files changed, 340 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/get_file_path.c
create mode 100644 tools/testing/selftests/bpf/progs/test_get_file_path.c
--
2.17.1
next prev parent reply other threads:[~2019-12-15 4:01 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-19 13:27 [PATCH bpf-next v10 0/2] bpf: adding get_file_path helper Wenbo Zhang
2019-11-19 13:27 ` [PATCH bpf-next v10 1/2] bpf: add new helper get_file_path for mapping a file descriptor to a pathname Wenbo Zhang
2019-11-23 3:18 ` Alexei Starovoitov
2019-11-23 4:43 ` Al Viro
2019-11-23 4:51 ` Al Viro
2019-11-23 5:19 ` Alexei Starovoitov
2019-11-23 5:35 ` Al Viro
2019-11-23 6:04 ` Alexei Starovoitov
2019-12-13 19:51 ` Brendan Gregg
2019-12-05 4:20 ` [PATCH bpf-next v11 0/2] bpf: adding get_file_path helper Wenbo Zhang
2019-12-05 4:20 ` [PATCH bpf-next v11 1/2] bpf: add new helper get_file_path for mapping a file descriptor to a pathname Wenbo Zhang
2019-12-05 7:19 ` Alexei Starovoitov
2019-12-05 9:47 ` Wenbo Zhang
2019-12-15 4:01 ` Wenbo Zhang [this message]
2019-12-15 4:01 ` [PATCH bpf-next v12 " Wenbo Zhang
2019-12-15 16:05 ` Yonghong Song
2019-12-17 6:26 ` Wenbo Zhang
2019-12-17 6:33 ` Yonghong Song
2019-12-15 16:10 ` Yonghong Song
2019-12-17 6:27 ` Wenbo Zhang
2019-12-16 22:09 ` Brendan Gregg
2019-12-17 4:05 ` Wenbo Zhang
2019-12-17 9:47 ` [PATCH bpf-next v13 0/2] bpf: adding get_fd_path helper Wenbo Zhang
2019-12-17 9:47 ` [PATCH bpf-next v13 1/2] bpf: add new helper get_fd_path for mapping a file descriptor to a pathname Wenbo Zhang
2019-12-17 16:29 ` Yonghong Song
2019-12-17 19:39 ` Daniel Borkmann
2019-12-18 0:11 ` Wenbo Zhang
2019-12-18 0:06 ` Wenbo Zhang
2019-12-18 0:56 ` [PATCH bpf-next v14 0/2] bpf: adding get_fd_path helper Wenbo Zhang
2019-12-18 0:56 ` [PATCH bpf-next v14 1/2] bpf: add new helper get_fd_path for mapping a file descriptor to a pathname Wenbo Zhang
2019-12-18 3:27 ` Yonghong Song
2019-12-19 16:14 ` Daniel Borkmann
2019-12-20 3:35 ` Wenbo Zhang
2020-01-16 8:59 ` Jiri Olsa
2020-02-10 4:43 ` Brendan Gregg
2020-02-11 0:01 ` Daniel Borkmann
2020-02-12 15:21 ` Jiri Olsa
2020-06-01 14:17 ` Wenbo Zhang
2020-06-01 16:38 ` Alexei Starovoitov
2020-06-02 3:04 ` Wenbo Zhang
2020-06-02 8:14 ` Jiri Olsa
2019-12-18 0:56 ` [PATCH bpf-next v14 2/2] selftests/bpf: test for bpf_get_fd_path() from tracepoint Wenbo Zhang
2019-12-18 3:27 ` Yonghong Song
2019-12-17 9:47 ` [PATCH bpf-next v13 " Wenbo Zhang
2019-12-17 16:32 ` Yonghong Song
2019-12-15 4:01 ` [PATCH bpf-next v12 2/2] selftests/bpf: test for bpf_get_file_path() " Wenbo Zhang
2019-12-15 16:24 ` Yonghong Song
2019-12-17 4:01 ` Wenbo Zhang
2019-12-17 4:13 ` Yonghong Song
2019-12-17 9:44 ` Wenbo Zhang
2019-12-05 4:20 ` [PATCH bpf-next v11 " Wenbo Zhang
2019-11-19 13:27 ` [PATCH bpf-next v10 " Wenbo Zhang
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=cover.1576381511.git.ethercflow@gmail.com \
--to=ethercflow@gmail.com \
--cc=andrii.nakryiko@gmail.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=netdev@vger.kernel.org \
--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.