https://github.com/torvalds/linux/blob/33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9/include/linux/filter.h#L556-L571 这是ebpf后备解释器的实现吗?
问问题
150 次
2 回答
1
完成 pchaigno 的回答: 的选择prog->bpf_func
是通过bpf_prog_select_runtime()
定义 in完成的kernel/bpf/core.c
,并在kernel/bpf/syscall.c
in 中调用bpf_prog_load()
,即当bpf()
系统调用与BPF_PROG_LOAD
命令一起使用时。
选择的运行时可以是内核解释器,如果使用 JIT,则可以是 JIT 编译的函数,或者在硬件卸载的情况下由 NIC 驱动程序编译的函数。
于 2019-09-08T19:11:40.577 回答
1
不,根据指向的内容BPF_PROG_RUN
调用解释器或 JITed 程序。prog->bpf_func
如果用户启用了 bpf stats,它还会更新统计信息(运行时间和 BPF 执行次数)。
于 2019-09-08T19:05:44.363 回答