Piège eBPF : Le FRED dans le noyau Linux 6.9+
2025-03-01
Le noyau Linux 6.9+ introduit CONFIG_X86_FRED sur x86_64, ajoutant 16 octets de remplissage au bas de la pile du noyau d’une tâche. Cela casse les programmes eBPF qui accèdent directement à la pile du noyau et à pt_regs, renvoyant des données incorrectes. L’auteur a rencontré ce problème avec son outil eBPF xcapture-next après la mise à niveau vers le noyau 6.11. L’analyse a révélé le décalage de la pile de FRED comme étant le coupable. Un mécanisme de détection dynamique de FRED est présenté pour ajuster les calculs de l’adresse de la pile, résolvant ainsi le problème. Cet article est crucial pour les développeurs eBPF, en particulier ceux qui travaillent avec la manipulation brute de la pile du noyau.
Développement