Resolvendo a Portabilidade do eBPF: BPF CO-RE ao Resgate

A execução de programas eBPF depende muito da versão do kernel, e as diferenças nas definições de struct entre as versões do kernel podem fazer com que os programas travem. Este artigo apresenta o BPF CO-RE, uma técnica que gera informações de relocação durante a compilação e usa informações BTF (BPF Type Format) em tempo de execução para corrigir os offsets de campo, resolvendo assim o problema de portabilidade dos programas eBPF. Mesmo sem suporte BTF no kernel de destino, o pré-download e a incorporação de arquivos BTF alcançam compatibilidade entre kernels. O autor também fornece um repositório GitHub com uma solução completa que baixa e incorpora automaticamente dados BTF, produzindo um único binário que executa em uma ampla gama de kernels sem exigir suporte BTF no sistema de destino.