bpf: add writable context for raw tracepoints
This is an opt-in interface that allows a tracepoint to provide a safe buffer that can be written from a BPF_PROG_TYPE_RAW_TRACEPOINT program. The size of the buffer must be a compile-time constant, and is checked before allowing a BPF program to attach to a tracepoint that uses this feature. The pointer to this buffer will be the first argument of tracepoints that opt in; the pointer is valid and can be bpf_probe_read() by both BPF_PROG_TYPE_RAW_TRACEPOINT and BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE programs that attach to such a tracepoint, but the buffer to which it points may only be written by the latter. Signed-off-by:Matt Mullins <mmullins@fb.com> Acked-by:
Yonghong Song <yhs@fb.com> Signed-off-by:
Alexei Starovoitov <ast@kernel.org>
Showing
- include/linux/bpf.h 2 additions, 0 deletionsinclude/linux/bpf.h
- include/linux/bpf_types.h 1 addition, 0 deletionsinclude/linux/bpf_types.h
- include/linux/tracepoint-defs.h 1 addition, 0 deletionsinclude/linux/tracepoint-defs.h
- include/trace/bpf_probe.h 25 additions, 2 deletionsinclude/trace/bpf_probe.h
- include/uapi/linux/bpf.h 1 addition, 0 deletionsinclude/uapi/linux/bpf.h
- kernel/bpf/syscall.c 6 additions, 2 deletionskernel/bpf/syscall.c
- kernel/bpf/verifier.c 31 additions, 0 deletionskernel/bpf/verifier.c
- kernel/trace/bpf_trace.c 24 additions, 0 deletionskernel/trace/bpf_trace.c
Loading
Please register or sign in to comment