Wang Nan
04a22fae4c
tracing, perf: Implement BPF programs attached to uprobes
...
By copying BPF related operation to uprobe processing path, this patch
allow users attach BPF programs to uprobes like what they are already
doing on kprobes.
After this patch, users are allowed to use PERF_EVENT_IOC_SET_BPF on a
uprobe perf event. Which make it possible to profile user space programs
and kernel events together using BPF.
Because of this patch, CONFIG_BPF_EVENTS should be selected by
CONFIG_UPROBE_EVENT to ensure trace_call_bpf() is compiled even if
KPROBE_EVENT is not set.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
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: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1435716878-189507-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2015-08-06 15:29:14 -03:00
..
blktrace.c
This patch series contains several clean ups and even a new trace clock
2015-06-26 14:02:43 -07:00
bpf_trace.c
bpf: let kprobe programs use bpf_get_smp_processor_id() helper
2015-06-15 15:53:50 -07:00
ftrace.c
ftrace: Fix breakage of set_ftrace_pid
2015-07-24 13:58:14 -04:00
Kconfig
tracing, perf: Implement BPF programs attached to uprobes
2015-08-06 15:29:14 -03:00
Makefile
bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make it more configurable
2015-04-02 16:28:06 +02:00
power-traces.c
PM / sleep: export suspend_resume trace event
2015-01-30 02:10:41 +01:00
ring_buffer.c
ring-buffer: Add enum names for the context levels
2015-05-29 10:39:08 -04:00
ring_buffer_benchmark.c
This patch series contains several clean ups and even a new trace clock
2015-06-26 14:02:43 -07:00
rpm-traces.c
PM / Runtime: Introduce trace points for tracing rpm_* functions
2011-09-27 22:53:27 +02:00
trace.c
tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_*
2015-05-13 15:24:57 -04:00
trace.h
tracing: Have branch tracer use recursive field of task struct
2015-07-08 11:53:45 -04:00
trace_benchmark.c
tracing: Only calculate stats of tracepoint benchmarks for 2^32 times
2014-06-06 00:41:38 -04:00
trace_benchmark.h
tracing: Add tracepoint benchmark tracepoint
2014-05-29 22:49:54 -04:00
trace_branch.c
tracing: Have branch tracer use recursive field of task struct
2015-07-08 11:53:45 -04:00
trace_clock.c
tracing: Export tracing clock functions
2015-05-12 15:56:57 -04:00
trace_entries.h
tracing: %pF is only for function pointers
2015-03-25 08:57:22 -04:00
trace_event_perf.c
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_events.c
tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_*
2015-05-13 15:24:57 -04:00
trace_events_filter.c
This patch series contains several clean ups and even a new trace clock
2015-06-26 14:02:43 -07:00
trace_events_filter_test.h
tracing/filter: Add startup tests for events filter
2011-08-19 14:35:59 -04:00
trace_events_trigger.c
tracing: Rename ftrace_raw_##call event structures to trace_event_raw_##call
2015-05-13 21:48:40 -04:00
trace_export.c
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_functions.c
tracing/trivial: Fix typos and make an int into a bool
2014-11-20 10:05:36 -05:00
trace_functions_graph.c
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_irqsoff.c
tracing: Remove unneeded includes of debugfs.h and fs.h
2015-01-22 11:19:48 -05:00
trace_kdb.c
KGDB/KDB fixes and cleanups
2015-01-09 20:51:10 -08:00
trace_kprobe.c
tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled()
2015-05-13 15:25:39 -04:00
trace_mmiotrace.c
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_nop.c
tracing: Remove unneeded includes of debugfs.h and fs.h
2015-01-22 11:19:48 -05:00
trace_output.c
tracing: Rename ftrace_event_name() to trace_event_name()
2015-05-13 14:20:14 -04:00
trace_output.h
tracing: Rename (un)register_ftrace_event() to (un)register_trace_event()
2015-05-13 14:05:14 -04:00
trace_printk.c
tracing: Use IS_ERR() check for return value of tracing_init_dentry()
2015-01-22 11:19:49 -05:00
trace_probe.c
trace: Don't use __weak in header files
2015-03-25 08:57:23 -04:00
trace_probe.h
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_sched_switch.c
tracing: Remove unneeded includes of debugfs.h and fs.h
2015-01-22 11:19:48 -05:00
trace_sched_wakeup.c
tracing: Rename ftrace_event_{call,class} to trace_event_{call,class}
2015-05-13 14:06:10 -04:00
trace_selftest.c
Seems that Peter Zijlstra added a new check that is making old
2014-10-12 07:28:55 -04:00
trace_selftest_dynamic.c
ftrace: Add self-tests for multiple function trace users
2011-05-18 19:24:51 -04:00
trace_seq.c
tracing: use %*pb[l] to print bitmaps including cpumasks and nodemasks
2015-02-13 21:21:37 -08:00
trace_stack.c
tracing: remove use of seq_printf return value
2015-04-15 16:35:25 -07:00
trace_stat.c
tracing: Convert the tracing facility over to use tracefs
2015-02-03 12:48:41 -05:00
trace_stat.h
tracing/stat: Add stat_release() callback
2009-07-10 12:14:05 +02:00
trace_syscalls.c
tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled()
2015-05-13 15:25:39 -04:00
trace_uprobe.c
tracing, perf: Implement BPF programs attached to uprobes
2015-08-06 15:29:14 -03:00