diff options
author | Alexei Starovoitov <ast@kernel.org> | 2019-12-09 03:01:13 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-12-12 02:18:08 +0300 |
commit | b91e014f078e2e4f24778680e28dbbdecc7f0eb9 (patch) | |
tree | 7d92e7ddbdd5cc48543536c6311b6ea292c7f949 /include | |
parent | 5b79bcdf03628a3a9ee04d9cd5fabcf61a8e20be (diff) | |
download | linux-b91e014f078e2e4f24778680e28dbbdecc7f0eb9.tar.xz |
bpf: Make BPF trampoline use register_ftrace_direct() API
Make BPF trampoline attach its generated assembly code to kernel functions via
register_ftrace_direct() API. It helps ftrace-based tracers co-exist with BPF
trampoline on the same kernel function. It also switches attaching logic from
arch specific text_poke to generic ftrace that is available on many
architectures. text_poke is still necessary for bpf-to-bpf attach and for
bpf_tail_call optimization.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20191209000114.1876138-3-ast@kernel.org
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/bpf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 35903f148be5..ac7de5291509 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -461,6 +461,7 @@ struct bpf_trampoline { struct { struct btf_func_model model; void *addr; + bool ftrace_managed; } func; /* list of BPF programs using this trampoline */ struct hlist_head progs_hlist[BPF_TRAMP_MAX]; |