Armadilha eBPF: O FRED no Kernel Linux 6.9+
2025-03-01
O kernel Linux 6.9+ introduz o CONFIG_X86_FRED em x86_64, adicionando 16 bytes de preenchimento ao final da pilha do kernel de uma tarefa. Isso quebra programas eBPF que acessam diretamente a pilha do kernel e pt_regs, retornando lixo. O autor encontrou esse problema com sua ferramenta eBPF xcapture-next após a atualização para o kernel 6.11. A análise revelou o offset da pilha do FRED como o culpado. Um mecanismo de detecção dinâmica do FRED é apresentado para ajustar os cálculos do endereço da pilha, resolvendo o problema. Este artigo é crucial para desenvolvedores eBPF, especialmente aqueles que trabalham com manipulação bruta da pilha do kernel.
Desenvolvimento