Messages in this thread Patch in this message | | | From | Wang Nan <> | Subject | [PATCH 04/12] perf tools: Allow BPF program attach to modules | Date | Fri, 13 Nov 2015 12:29:13 +0000 |
| |
By extending the syntax of BPF object section names, this patch allows user to attach BPF programs to symbol in modules. For example:
SEC("module=i915\n" "parse_cmds=i915_parse_cmds") int parse_cmds(void *ctx) { return 1; }
Implementation is very simple: like what 'perf probe' does, for module, fill 'uprobe' field in 'struct perf_probe_event'. Other parts would be done automatically.
Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Brendan Gregg <brendan.d.gregg@gmail.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: David Ahern <dsahern@gmail.com> Cc: He Kuang <hekuang@huawei.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kaixu Xia <xiakaixu@huawei.com> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Link: http://lkml.kernel.org/n/1445915248-175553-1-git-send-email-wangnan0@huawei.com --- tools/perf/util/bpf-loader.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c index 5f5505d..8d78785 100644 --- a/tools/perf/util/bpf-loader.c +++ b/tools/perf/util/bpf-loader.c @@ -117,6 +117,14 @@ config__exec(const char *value, struct perf_probe_event *pev) return 0; } +static int +config__module(const char *value, struct perf_probe_event *pev) +{ + pev->uprobes = false; + pev->target = strdup(value); + return 0; +} + static struct { const char *key; const char *usage; @@ -129,6 +137,12 @@ static struct { "Set uprobe target", config__exec, }, + { + "module", + "module=<module name> ", + "Set kprobe module", + config__module, + } }; static int -- 1.8.3.4
| |