diff options
author | Yonghong Song <yhs@fb.com> | 2018-04-28 22:28:08 -0700 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-04-29 08:45:53 -0700 |
commit | c195651e565ae7f41a68acb7d4aa7390ad215de1 (patch) | |
tree | b11a7c5682239958cc2089fbbb95f626df7b5b7c /include/linux/filter.h | |
parent | 5f4126327494c189767ca64b222abadb07c55e3d (diff) | |
download | lwn-c195651e565ae7f41a68acb7d4aa7390ad215de1.tar.gz lwn-c195651e565ae7f41a68acb7d4aa7390ad215de1.zip |
bpf: add bpf_get_stack helper
Currently, stackmap and bpf_get_stackid helper are provided
for bpf program to get the stack trace. This approach has
a limitation though. If two stack traces have the same hash,
only one will get stored in the stackmap table,
so some stack traces are missing from user perspective.
This patch implements a new helper, bpf_get_stack, will
send stack traces directly to bpf program. The bpf program
is able to see all stack traces, and then can do in-kernel
processing or send stack traces to user space through
shared map or bpf_perf_event_output.
Acked-by: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/linux/filter.h')
-rw-r--r-- | include/linux/filter.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/filter.h b/include/linux/filter.h index 4da8b2308174..64899c04c1a6 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -468,7 +468,8 @@ struct bpf_prog { dst_needed:1, /* Do we need dst entry? */ blinded:1, /* Was blinded */ is_func:1, /* program is a bpf function */ - kprobe_override:1; /* Do we override a kprobe? */ + kprobe_override:1, /* Do we override a kprobe? */ + has_callchain_buf:1; /* callchain buffer allocated? */ enum bpf_prog_type type; /* Type of BPF program */ enum bpf_attach_type expected_attach_type; /* For some prog types */ u32 len; /* Number of filter blocks */ |