mbox series

[net-next,0/2] bpf/tracing: allow user space to query prog array on the same tp

Message ID 20171129072036.467246-1-yhs@fb.com
Headers show
Series bpf/tracing: allow user space to query prog array on the same tp | expand

Message

Yonghong Song Nov. 29, 2017, 7:20 a.m. UTC
Commit e87c6bc3852b ("bpf: permit multiple bpf attachments
for a single perf event") added support to attach multiple
bpf programs to a single perf event. Given a perf event
(kprobe, uprobe, or kernel tracepoint), the perf ioctl interface
is used to query bpf programs attached to the same trace event.
The same ioctl interface is also used to attach bpf program.
Patch #1 had the core implementation and patch #2 added
a test case in tools bpf selftests suite.

Yonghong Song (2):
  bpf/tracing: allow user space to query prog array on the same tp
  bpf/tracing: add a bpf test for new ioctl query interface

 include/linux/bpf.h                      |   4 ++
 include/uapi/linux/perf_event.h          |   6 ++
 kernel/bpf/core.c                        |  24 +++++++
 kernel/events/core.c                     |   3 +
 kernel/trace/bpf_trace.c                 |  23 +++++++
 tools/include/uapi/linux/perf_event.h    |   6 ++
 tools/testing/selftests/bpf/Makefile     |   2 +-
 tools/testing/selftests/bpf/test_progs.c | 107 +++++++++++++++++++++++++++++++
 8 files changed, 174 insertions(+), 1 deletion(-)

Comments

Alexei Starovoitov Nov. 30, 2017, 5:32 a.m. UTC | #1
On 11/28/17 11:20 PM, Yonghong Song wrote:
> Commit e87c6bc3852b ("bpf: permit multiple bpf attachments
> for a single perf event") added support to attach multiple
> bpf programs to a single perf event. Given a perf event
> (kprobe, uprobe, or kernel tracepoint), the perf ioctl interface
> is used to query bpf programs attached to the same trace event.
> The same ioctl interface is also used to attach bpf program.
> Patch #1 had the core implementation and patch #2 added
> a test case in tools bpf selftests suite.

We actually had an implementation of the same tracepoint+bpf
introspection via BPF_PROG_QUERY command that we use for cgroup+bpf,
but it looks cleaner to use ioctl() style of api here,
since attach to tracepoint/kuprobe is also done via ioctl.

For the set:
Acked-by: Alexei Starovoitov <ast@kernel.org>

The patch touches 3 lines in events/core.c but most likely
it won't conflict with anything in tip, so we plan to have
this set in bpf-next.git -> net-next.git only.

Thanks