我是eBPF的新手,正如教程所建议的,eBPF是一个带有jit编译器的运行时。就我所知,字节码在eBPF中只是被翻译成本机代码,所以我想知道eBPF中是否有类似JVM的解释阶段?
如果你禁用JIT编译器,那么是的,它将被解释。
你可以使用以下命令禁用JIT编译器:
echo 0 > /proc/sys/net/core/bpf_jit_enable
或在内核配置中。:
CONFIG_BPF_JIT=n
在Linux内核中,eBPF附带了一个解释器和一个jit编译器(适用于所有广泛的体系结构)。
您可以为您的程序使用解释器或jit编译器。这是通过bpf_jit_enable
旋钮控制sysctl
。它们并不是执行过程的不同阶段:当你使用解释器时,内核解释你的程序并模拟寄存器;而如果启用了jit编译器,则可以将指令编译成本机代码。
CONFIG_BPF_JIT_ALWAYS_ON=y
而忽略它。在这种情况下,不能使用解释器。