Make BPF backend non-experimental?

Hi All,

I'd like to propose to upgrade BPF backend to first class citizen.

Current status of it:
- used with linux kernel on x64, arm64, s390 architectures
- projects that use it: perf, tc, ovs
- there are few front-ends in the works:
. one is translating custom language to C and then using clang/llvm
. another is generating llvm IR directly
. yet another is using clang rewriter to augment C language
for tracing/networking needs
. one project tried to hack clang overall and was abandoned
. p4->bpf project was announced yesterday
- I've seen people embedding binary llc with bpf support
in their github projects.
- broken llvm build with bpf backend was reported many
times with few folks even provided simple patches to unbreak it.
- we've started to prepare buildbot specific to bpf, but hit
configuration issues with zorg. Hopefully it will be functional soon.
- as far as I can see all across the board api refactoring that
was done by a bunch of people over the last 5 month
didn't cause any problems for them or for the backend
- it was accidentally included in the last night builds and
  reverted today. There were no buildbot issues (afaik)
- recent press:

bpf backend has been in-tree since January and has quite a few
users, so I think it's time to graduate it from experimental.


As one of the people who has worked with and reviewed the BPF port I’m in favor of this move.


  1. Alexei has been very active on the port, fixing problems unprompted
  2. As one of the people who’ve had to had on it in the last few months it wasn’t an issue to keep up to date with the other ports.

Unless there are objections by EOD Monday I feel confident making the call here and having Alexei add it to the list of official targets.




Good enough I think at this point.

Alexei: You wanted to make the change, go ahead :slight_smile:



+1, make it so.