Message ID | 20200531154255.896551-1-jolsa@kernel.org |
---|---|
State | Accepted |
Delegated to: | BPF Maintainers |
Headers | show |
Series | bpf: Use tracing helpers for lsm programs | expand |
On Sun, May 31, 2020 at 8:45 AM Jiri Olsa <jolsa@kernel.org> wrote: > > Currenty lsm uses bpf_tracing_func_proto helpers which do > not include stack trace or perf event output. It's useful > to have those for bpftrace lsm support [1]. > > Using tracing_prog_func_proto helpers for lsm programs. How about using raw_tp_prog_func_proto? Thanks, Song PS: Please tag the patch with subject prefix "PATCH bpf" for "PATCH bpf-next". I think this one belongs to bpf-next, which means we should wait after the merge window.
On Mon, Jun 1, 2020 at 12:00 PM Song Liu <song@kernel.org> wrote: > > On Sun, May 31, 2020 at 8:45 AM Jiri Olsa <jolsa@kernel.org> wrote: > > > > Currenty lsm uses bpf_tracing_func_proto helpers which do > > not include stack trace or perf event output. It's useful > > to have those for bpftrace lsm support [1]. > > > > Using tracing_prog_func_proto helpers for lsm programs. > > How about using raw_tp_prog_func_proto? why? I think skb/xdp_output is useful for lsm progs too. So I've applied the patch. > PS: Please tag the patch with subject prefix "PATCH bpf" for > "PATCH bpf-next". I think this one belongs to bpf-next, which means > we should wait after the merge window. +1. Jiri, pls tag the subject properly.
On Mon, Jun 1, 2020 at 3:12 PM Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > On Mon, Jun 1, 2020 at 12:00 PM Song Liu <song@kernel.org> wrote: > > > > On Sun, May 31, 2020 at 8:45 AM Jiri Olsa <jolsa@kernel.org> wrote: > > > > > > Currenty lsm uses bpf_tracing_func_proto helpers which do > > > not include stack trace or perf event output. It's useful > > > to have those for bpftrace lsm support [1]. > > > > > > Using tracing_prog_func_proto helpers for lsm programs. > > > > How about using raw_tp_prog_func_proto? > > why? > I think skb/xdp_output is useful for lsm progs too. > So I've applied the patch. The only reason I asked was that the commit log only said stack trace and perf event output. No objections allowing other helpers for lsm. Thanks, Song
On Mon, Jun 01, 2020 at 03:12:13PM -0700, Alexei Starovoitov wrote: > On Mon, Jun 1, 2020 at 12:00 PM Song Liu <song@kernel.org> wrote: > > > > On Sun, May 31, 2020 at 8:45 AM Jiri Olsa <jolsa@kernel.org> wrote: > > > > > > Currenty lsm uses bpf_tracing_func_proto helpers which do > > > not include stack trace or perf event output. It's useful > > > to have those for bpftrace lsm support [1]. > > > > > > Using tracing_prog_func_proto helpers for lsm programs. > > > > How about using raw_tp_prog_func_proto? > > why? > I think skb/xdp_output is useful for lsm progs too. > So I've applied the patch. right, it's also where d_path will be as well > > > PS: Please tag the patch with subject prefix "PATCH bpf" for > > "PATCH bpf-next". I think this one belongs to bpf-next, which means > > we should wait after the merge window. I must have missed info about that, thanks for info > > +1. > Jiri, > pls tag the subject properly. will do, sry thanks, jirka
On Tue, Jun 2, 2020 at 10:13 AM Jiri Olsa <jolsa@redhat.com> wrote: > > On Mon, Jun 01, 2020 at 03:12:13PM -0700, Alexei Starovoitov wrote: > > On Mon, Jun 1, 2020 at 12:00 PM Song Liu <song@kernel.org> wrote: > > > > > > On Sun, May 31, 2020 at 8:45 AM Jiri Olsa <jolsa@kernel.org> wrote: > > > > > > > > Currenty lsm uses bpf_tracing_func_proto helpers which do > > > > not include stack trace or perf event output. It's useful > > > > to have those for bpftrace lsm support [1]. > > > > > > > > Using tracing_prog_func_proto helpers for lsm programs. > > > > > > How about using raw_tp_prog_func_proto? > > > > why? > > I think skb/xdp_output is useful for lsm progs too. > > So I've applied the patch. > > right, it's also where d_path will be as well > > > > > > PS: Please tag the patch with subject prefix "PATCH bpf" for > > > "PATCH bpf-next". I think this one belongs to bpf-next, which means > > > we should wait after the merge window. > > I must have missed info about that, > thanks for info Thanks for adding this! LGTM as well. - KP > > > > > +1. > > Jiri, > > pls tag the subject properly. > > will do, sry > > thanks, > jirka >
diff --git a/include/linux/bpf.h b/include/linux/bpf.h index e5884f7f801c..caa26ab471e8 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -1628,6 +1628,9 @@ extern const struct bpf_func_proto bpf_ringbuf_query_proto; const struct bpf_func_proto *bpf_tracing_func_proto( enum bpf_func_id func_id, const struct bpf_prog *prog); +const struct bpf_func_proto *tracing_prog_func_proto( + enum bpf_func_id func_id, const struct bpf_prog *prog); + /* Shared helpers among cBPF and eBPF. */ void bpf_user_rnd_init_once(void); u64 bpf_user_rnd_u32(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5); diff --git a/kernel/bpf/bpf_lsm.c b/kernel/bpf/bpf_lsm.c index 19636703b24e..fb278144e9fd 100644 --- a/kernel/bpf/bpf_lsm.c +++ b/kernel/bpf/bpf_lsm.c @@ -49,6 +49,6 @@ const struct bpf_prog_ops lsm_prog_ops = { }; const struct bpf_verifier_ops lsm_verifier_ops = { - .get_func_proto = bpf_tracing_func_proto, + .get_func_proto = tracing_prog_func_proto, .is_valid_access = btf_ctx_access, }; diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c index 3767d34114c0..794d665bebdd 100644 --- a/kernel/trace/bpf_trace.c +++ b/kernel/trace/bpf_trace.c @@ -1467,7 +1467,7 @@ raw_tp_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) } } -static const struct bpf_func_proto * +const struct bpf_func_proto * tracing_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) { switch (func_id) {
Currenty lsm uses bpf_tracing_func_proto helpers which do not include stack trace or perf event output. It's useful to have those for bpftrace lsm support [1]. Using tracing_prog_func_proto helpers for lsm programs. [1] https://github.com/iovisor/bpftrace/pull/1347 Cc: KP Singh <kpsingh@google.com> Signed-off-by: Jiri Olsa <jolsa@kernel.org> --- include/linux/bpf.h | 3 +++ kernel/bpf/bpf_lsm.c | 2 +- kernel/trace/bpf_trace.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-)