As of today, the `__always_inline` is still required. Some work will be needed, e.g., to merge codes between different sections, before `__always_inline` can be removed. On Sat, Jun 15, 2019 at 5:07 PM Elerion <elerion1000@xxxxxxxxx> wrote: > > What version of Linux is required so I can use functions without > __always_inline in the xdp kernel object? > > I read here https://lwn.net/Articles/741773/ it was supposed to be > allowed a long time ago. > > When I remove __always_inline on a medium sized function, > bpf_load_program() will say: > > "jump out of range from insn 5 to 796" > > Is this possible to fix, or do you still need to put __always_inline > on every function? > > Software versions: > > Ubuntu 18.04.02 LTS x64 > 4.18.0-20-generic > 5.0.0-16-generic > > clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final) > Target: x86_64-pc-linux-gnu > Thread model: posix > InstalledDir: /usr/bin > > LLVM (http://llvm.org/): > LLVM version 6.0.0 > > Optimized build. > Default target: x86_64-pc-linux-gnu > Host CPU: broadwell > > Compile flags: > > clang -O2 -target bpf -I/usr/include/x86_64-linux-gnu -c kern.c -o kern.o