bpf: support raw tracepoints in modules
Distributions build drivers as modules, including network and filesystem drivers which export numerous tracepoints. This enables bpf(BPF_RAW_TRACEPOINT_OPEN) to attach to those tracepoints. Signed-off-by: Matt Mullins <mmullins@fb.com> Acked-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
a137401d85
commit
a38d1107f9
5 changed files with 120 additions and 7 deletions
|
|
@ -432,6 +432,10 @@ struct module {
|
|||
unsigned int num_tracepoints;
|
||||
tracepoint_ptr_t *tracepoints_ptrs;
|
||||
#endif
|
||||
#ifdef CONFIG_BPF_EVENTS
|
||||
unsigned int num_bpf_raw_events;
|
||||
struct bpf_raw_event_map *bpf_raw_events;
|
||||
#endif
|
||||
#ifdef HAVE_JUMP_LABEL
|
||||
struct jump_entry *jump_entries;
|
||||
unsigned int num_jump_entries;
|
||||
|
|
|
|||
|
|
@ -471,7 +471,8 @@ void perf_event_detach_bpf_prog(struct perf_event *event);
|
|||
int perf_event_query_prog_array(struct perf_event *event, void __user *info);
|
||||
int bpf_probe_register(struct bpf_raw_event_map *btp, struct bpf_prog *prog);
|
||||
int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf_prog *prog);
|
||||
struct bpf_raw_event_map *bpf_find_raw_tracepoint(const char *name);
|
||||
struct bpf_raw_event_map *bpf_get_raw_tracepoint(const char *name);
|
||||
void bpf_put_raw_tracepoint(struct bpf_raw_event_map *btp);
|
||||
int bpf_get_perf_event_info(const struct perf_event *event, u32 *prog_id,
|
||||
u32 *fd_type, const char **buf,
|
||||
u64 *probe_offset, u64 *probe_addr);
|
||||
|
|
@ -502,10 +503,13 @@ static inline int bpf_probe_unregister(struct bpf_raw_event_map *btp, struct bpf
|
|||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline struct bpf_raw_event_map *bpf_find_raw_tracepoint(const char *name)
|
||||
static inline struct bpf_raw_event_map *bpf_get_raw_tracepoint(const char *name)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline void bpf_put_raw_tracepoint(struct bpf_raw_event_map *btp)
|
||||
{
|
||||
}
|
||||
static inline int bpf_get_perf_event_info(const struct perf_event *event,
|
||||
u32 *prog_id, u32 *fd_type,
|
||||
const char **buf, u64 *probe_offset,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue