Kprobe和tracepoint,哪个先触发?

问题描述 投票:0回答:1

假设您有 2 个 eBPF 程序,其中一个是

BPF_PROG_TYPE_TRACEPOINT
类型,另一个是
BPF_PROG_TYPE_KPROBE
类型。跟踪点附加到
sys_enter_execve
并且 kprobe 将附加到同一个系统调用。

这里有特定的执行顺序吗?我假设跟踪点在内核进入系统调用之前附加,而 kprobe 附加在系统调用的确切入口点上,但我不太确定,也找不到有关它的文档。

linux kernel ebpf kprobe
1个回答
0
投票

特别是对于系统调用挂钩,首先触发原始跟踪。原始跟踪点 sys_enter 在所有系统调用(do_syscall_x64 ...)的入口点指定,然后被分派到实际处理程序(例如:__x64_sys_execve 或 __ia32_sys_execve)。

自行仔细检查: https://elixir.bootlin.com/linux/v5.8/source/arch/x86/entry/common.c#L368

© www.soinside.com 2019 - 2024. All rights reserved.