0

https://github.com/torvalds/linux/blob/33920f1ec5bf47c5c0a1d2113989bdd9dfb3fae9/include/linux/filter.h#L556-L571 这是ebpf后备解释器的实现吗?

4

2 回答 2

1

完成 pchaigno 的回答: 的选择prog->bpf_func是通过bpf_prog_select_runtime()定义 in完成的kernel/bpf/core.c,并在kernel/bpf/syscall.cin 中调用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 回答