invalid argument Error while running ebpf code having ring buffer using bee
Version
0.0.9
Linux Version
ubuntu 18.04 lts , Kernel version : 5.4.0-91-generic
Describe the bug
I successfully build tcpconnect example using bee build tcpconnect.c tcp:v2
But while running it using bee run tcp:v2 getting below error:
SUCCESS Fetching program from registry: tcp:v2
ERROR Loading BPF program and maps into Kernel
Error: map events_ring: map create: invalid argument
2022/01/11 14:42:58 exiting: map events_ring: map create: invalid argument
I also tested a hash map and ring buffer test ebpf codes separately. I saw that the code using hash_map ran successfully but the one with ring buffer is giving the same error while running.
Steps to reproduce the bug
- bee build tcpconnect.c tcp:v2
- bee run tcp:v2
Expected Behavior
It shall run successfully.
Additional Context
No response
Thanks for the report! I can reproduce it and will update this issue with my findings
It should have been more obvious to me initially, but this is because the BPF_MAP_TYPE_RINGBUF is only available in Linux 5.8+.
We should probably fix the standard tcpconnect example to be able to run on older kernels.
Ok. Thanks for the response. Will track the progress on the bug and try again later.
The fix for issues like this should be to leverage the new compat layer that could fall back to legacy map types if the new ones are not supported in the kernel running the code, like this: https://github.com/iovisor/bcc/pull/4282
For that, we should add support for perfbuf first.