Linux UML内核可以配置为支持BPF跟踪点吗?
使用libbpf加载一个BTF对象,该对象在UML内核上为 SEC("tracepoint/syscalls/sys_enter_execve") 定义了探针(在6.18.26版本上测试过),当程序类型为BPF_PROG_TYPE_TRACING时,EINVAL会从 __sys_bpf → bpf_prog_load → find_prog_type 返回。
我使用 scripts/config 启用了这些,但 CONFIG_TRACING 仍未出现在.config文件中:
BPF
BPF_SYSCALL
DEBUG_INFO_BTF
BPF_EVENTS
TRACEPOINTS
DEBUG_FS
KPROBES
KPROBE_EVENTS
EVENT_TRACING
TRACING
FTRACE
FUNCTION_TRACER
DYNAMIC_FTRACE
UML的 Kconfig规则是否强制禁用 CONFIG_TRACING,或至少禁用BPF跟踪探针?
解决方案
在宿主内核中能够添加命名空间和容器之后,UML的开发很可能就停止了。
你可能需要梳理TRACING的依赖项,看看当前有哪些在UML中尚不存在。
config TRACING
bool
select RING_BUFFER
select STACKTRACE if STACKTRACE_SUPPORT
select TRACEPOINTS
select NOP_TRACER
select BINARY_PRINTF
select EVENT_TRACING
select TRACE_CLOCK
select NEED_TASKS_RCU
然后检查依赖关系:
config RING_BUFFER
bool
select TRACE_CLOCK
select IRQ_WORK
等等……
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。