我对eBPF很陌生,正如本教程所建议的那样,eBPF是一个具有jit编译器的运行时。就我而言,字节码只是在eBPF中被转换成本机代码,所以我想知道是否有像eBPF中的JVM那样的解释阶段?
发布于 2022-05-17 08:20:49
如果禁用JIT编译器,则会对其进行解释。
您可以使用以下方法禁用JIT编译器:
echo 0 > /proc/sys/net/core/bpf_jit_enable或者在内核配置中。通过以下方式:
CONFIG_BPF_JIT=n发布于 2022-05-17 08:21:53
在Linux内核中,eBPF提供了解释器和JIT编译器(对于所有广泛的体系结构)。
您可以在程序中使用解释器或JIT编译器。这是通过bpf_jit_enable旋钮控制的sysctl。它们不是执行过程的不同阶段:当您使用解释器时,内核将解释您的程序并模拟寄存器;而在启用JIT编译器时,您将指令编译成本机代码。
尽管如此,翻译并不总是可用的。出于安全考虑(与谱有关),一些发行版在编译内核时会忽略它,方法是设置内核配置选项CONFIG_BPF_JIT_ALWAYS_ON=y。在这种情况下,不能使用解释器。
https://stackoverflow.com/questions/72269814
复制相似问题