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
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à
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
bonne question je vais fouiller dans le source. mais avant j'utilisais kprobe ça s'en foutait un peu de la signature non ?
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
ah d'acc. je regarde ça.
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
oui les helpers génériques ça va. c'est vraiment spécifique à cette fct ou d'autres liées à io_uring.
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
dmesg rien d'explicite. tracefs je vois la probe active mais les événements sont vides. pas de hit
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
donc faut que je retrouve la *nouvelle* signature ? ou utiliser des tracepoints si dispo ?
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
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é ?
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
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
putain de refactorings silencieux. merci beaucoup pour l'aide
haha classique. content que ça marche. ces trucs là c'est un enfer à débugger.
clairement. thx encore.
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
nath06
Membre depuis le 24/03/2019
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 ?