aboutsummaryrefslogtreecommitdiff
path: root/kernel/trace/Makefile
diff options
context:
space:
mode:
authorGravatar Masami Hiramatsu <mhiramat@kernel.org> 2022-03-15 23:00:38 +0900
committerGravatar Alexei Starovoitov <ast@kernel.org> 2022-03-17 20:16:15 -0700
commitcad9931f64dc7f5dbdec12cae9f30063360f9855 (patch)
tree9cafaa881cef703b8819373e1a3ca2a237757185 /kernel/trace/Makefile
parentftrace: Add ftrace_set_filter_ips function (diff)
downloadlinux-cad9931f64dc7f5dbdec12cae9f30063360f9855.tar.gz
linux-cad9931f64dc7f5dbdec12cae9f30063360f9855.tar.bz2
linux-cad9931f64dc7f5dbdec12cae9f30063360f9855.zip
fprobe: Add ftrace based probe APIs
The fprobe is a wrapper API for ftrace function tracer. Unlike kprobes, this probes only supports the function entry, but this can probe multiple functions by one fprobe. The usage is similar, user will set their callback to fprobe::entry_handler and call register_fprobe*() with probed functions. There are 3 registration interfaces, - register_fprobe() takes filtering patterns of the functin names. - register_fprobe_ips() takes an array of ftrace-location addresses. - register_fprobe_syms() takes an array of function names. The registered fprobes can be unregistered with unregister_fprobe(). e.g. struct fprobe fp = { .entry_handler = user_handler }; const char *targets[] = { "func1", "func2", "func3"}; ... ret = register_fprobe_syms(&fp, targets, ARRAY_SIZE(targets)); ... unregister_fprobe(&fp); Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Tested-by: Steven Rostedt (Google) <rostedt@goodmis.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/164735283857.1084943.1154436951479395551.stgit@devnote2
Diffstat (limited to 'kernel/trace/Makefile')
-rw-r--r--kernel/trace/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index bedc5caceec7..79255f9de9a4 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -97,6 +97,7 @@ obj-$(CONFIG_PROBE_EVENTS) += trace_probe.o
obj-$(CONFIG_UPROBE_EVENTS) += trace_uprobe.o
obj-$(CONFIG_BOOTTIME_TRACING) += trace_boot.o
obj-$(CONFIG_FTRACE_RECORD_RECURSION) += trace_recursion_record.o
+obj-$(CONFIG_FPROBE) += fprobe.o
obj-$(CONFIG_TRACEPOINT_BENCHMARK) += trace_benchmark.o