mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
This patch adds support for kprobes on ftrace call sites to avoids
much of the overhead with regular kprobes. Try it with simple
steps:
echo 'p:myprobe sys_clone a0=%a0 a1=%a1 stack_val=+4($stack)' > /sys/kernel/de
bug/tracing/kprobe_events
echo 1 > /sys/kernel/debug/tracing/events/kprobes/enable
cat /sys/kernel/debug/tracing/trace
tracer: nop
entries-in-buffer/entries-written: 1/1 #P:1
_-----=> irqs-off
/ _----=> need-resched
| / _---=> hardirq/softirq
|| / _--=> preempt-depth
||| / delay
TASK-PID CPU# |||| TIMESTAMP FUNCTION
| | | |||| | |
sh-92 [000] .... 369.899962: myprobe: (sys_clone+0x0/0x28) a0=0x1200011 a1=0x0 stack_val=0x201c20ffffffe0
cat /sys/kernel/debug/kprobes/list
ffffffe00020b584 k sys_clone+0x0 [FTRACE]
^^^^^^
Signed-off-by: Guo Ren <[email protected]>
Reviewed-by: Masami Hiramatsu <[email protected]>
Signed-off-by: Palmer Dabbelt <[email protected]>
6 lines
243 B
Makefile
6 lines
243 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
obj-$(CONFIG_KPROBES) += kprobes.o decode-insn.o simulate-insn.o
|
|
obj-$(CONFIG_KPROBES) += kprobes_trampoline.o
|
|
obj-$(CONFIG_KPROBES_ON_FTRACE) += ftrace.o
|
|
CFLAGS_REMOVE_simulate-insn.o = $(CC_FLAGS_FTRACE)
|