eBPF probe attach fails on io_uring kfunc in kernel 5.15+

nath06 06/12/2025
RÉSOLU
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

salut la team ! on a un souci avec nos probes eBPF depuis qu'on a bumpé nos kernels à 5.15+. avant sur 5.10 ça marchait niquel on tracait les io_uring_submit_sqes. maintenant la probe attache mais ne collecte rien ou crash le kernel parfois. on utilise kprobe/kretprobe. vous avez eu des trucs similaires ?

SEC("kprobe/io_uring_submit_sqes")
int BPF_KPROBE(io_uring_submit_sqes_entry)
{
    // some BPF logic here
    return 0;
}
06/12/2025 à 22:27

19 commentaires

susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

uhm 5.15 a pas mal changé comment certains kfuncs sont exportés ou gérés surtout autour d'io_uring regarde la changelog si y a des symboles qui ont bougé ou été renommés

07/12/2025 à 21:20
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

j'ai regardé vite fait pas de renommage explicite pour cette fct. j'ai essayé de lister avec bpftool kfunc et la fct est bien là

08/12/2025 à 20:15
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

ok mais est-ce que sa signature a changé ptete le nombre de params ou leurs types un truc tout bête mais ça casse tout

09/12/2025 à 17:15
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

bonne question je vais fouiller dans le source. mais avant j'utilisais kprobe ça s'en foutait un peu de la signature non ?

10/12/2025 à 17:10
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

pas totalement si c'est une kprobe ça hook l'entrée mais si le kernel attend des registres différents pour les args ça peut foirer l'accès au contexte et si t'utilises BPF_KPROBE c'est sensible à la signature

11/12/2025 à 16:14
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

ah d'acc. je regarde ça.

12/12/2025 à 15:04
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

autre truc les helpers bpf genre bpf_get_current_pid_tgid ça marche toujours bien ? juste pour isoler si le pb vient de io_uring ou du hook général

13/12/2025 à 11:23
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

oui les helpers génériques ça va. c'est vraiment spécifique à cette fct ou d'autres liées à io_uring.

14/12/2025 à 07:14
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

tu as essayé avec tracefs pour voir si le hook est enregistré mais ne trigge pas ou s'il y a des erreurs dans les logs du kernel genre dmesg

15/12/2025 à 02:03
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

dmesg rien d'explicite. tracefs je vois la probe active mais les événements sont vides. pas de hit

15/12/2025 à 23:55
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

ok. alors ça sent le changement ABI du kfunc. dans 5.15 y a eu des refactorings sur io_uring pour la performance et la sécurité interne

16/12/2025 à 22:44
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

donc faut que je retrouve la nouvelle signature ? ou utiliser des tracepoints si dispo ?

Modifié le 23/05/2026 à 16:20
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

tracepoints c'est plus stable mais y en a pas toujours pour tout. si la signature a changé et que tu forces BPF_KPROBE sur l'ancienne ça peut attacher mais juste pas parser les args correctement et donc rien collecter

18/12/2025 à 14:14
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

y a aussi eu des changements sur la politique de compilation du kernel vis-à-vis des modules non-gpl et des symboles exportés t'es sur que ton programme bpf est bien chargé ?

19/12/2025 à 13:53
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

c'est un programme eBPF pas un module kernel. mais oui la politique de symboles peut impacter. si le kfunc n'est plus EXPORT_SYMBOL_GPL ça peut être un souci avec certains bpf helpers

20/12/2025 à 10:30
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

je viens de trouver ! ils ont introduit une nouvelle macro io_uring_submit_sqes_kernel_entry. le nom a changé implicitement pour les kprobes. j'ai modifié mon code et ça fonctionne

21/12/2025 à 05:30
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

putain de refactorings silencieux. merci beaucoup pour l'aide

22/12/2025 à 04:04
susanne79
Membre Actif
Avatar de susanne79
susanne79
Membre Actif

haha classique. content que ça marche. ces trucs là c'est un enfer à débugger.

23/12/2025 à 02:23
nath06
Auteur Actif
Avatar de nath06
nath06
Auteur Actif

clairement. thx encore.

23/12/2025 à 23:04

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire