-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kernel 6.6: error initializing '/usr/lib/bpftune//route_table_tuner.so #81
Comments
Thanks for the report! I'll dig into this more in a few days |
The error occurs with Kernel 5.14 on RHEL 9.2 |
I reproduced this; looks like the root cause is fib6_age () is not present in kallsyms/BTF; since it is a static function I suspect it is being inlined. As it is needed for the route_table_tuner, the failure to load is the right thing; however it'd be good if the failure mode was a bit more informative. |
looks like you don't have BTF; in that case we can't be sure the offsets we use are correct, so we can get unexpected behaviour as described in the log; "3 bpftune[38931]: bpftune works, but no BPF Type Format information (BTF) is available. This means kernel data structure offsets may not match those at compile-time, and tuners may not operate as expected. This mode of operation is unsupported, and failures are expected, so be warned." Can you confirm /sys/kernel/btf/vmlinux is absent? In this case it looks like the offsets of the tcp memory values are wrong, and can't be fixed since we have no BTF, hence we get 0 values. |
I do have the file, so then can we say the offsets used are incorrect? |
Yeah, it looks like the BTF can't be read by bpftune. This usually happens when the tools used to create the kernel BTF are newer than those being used to read it - in that case the BTF cannot be parsed. If you can find a more up-to-date libbpf to build with that may help. |
Seeing the same thing on ubuntu hwe edge kernel
|
Got thi
Indeed, the hwe-edge kernel was built using a newer version of libbpf than libbpf-devel provided, and that resolved. |
Any updates on this? |
the original problem - inlining of fib6_age() - is hard to predict since it is very compiler-specific. we currently have a model of passing optional functions to the bpftuner load function that could potentially be extended to name required functions, and check kallsyms for these, but it feels kind of clunky. ideally we would like to rely on tracepoints in the kernel; the right answer in this case I think is to add a tracepoint to cover FIB[6] garbage collection; it will give us what we need. |
for now, the error message has been improved to better describe this: Oct 25 17:16:03 bpf bpftune[1822269]: tuner 'route_table' failed to load, tracing target was not found; this can occur for unstable tracing targets like kernel functions. |
Starting with the 6.6 Kernel I get following in journalctl/systemctl status:
This is not reproduceable with 6.5.
The text was updated successfully, but these errors were encountered: