On Wed, Sep 23, 2020 at 9:43 AM Lorenz Bauer <lmb@xxxxxxxxxxxxxx> wrote: > > On Wed, 23 Sep 2020 at 17:24, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > > > On Wed, Sep 23, 2020 at 9:12 AM Lorenz Bauer <lmb@xxxxxxxxxxxxxx> wrote: > > > > > > On Fri, 18 Sep 2020 at 04:26, Alexei Starovoitov > > > <alexei.starovoitov@xxxxxxxxx> wrote: > > > [...] > > > > > > > > Lorenz, > > > > if you can test it on cloudflare progs would be awesome. > > > > > > Our programs all bpf_tail_call from the topmost function, so no calls > > > from subprogs. I stripped out our FORCE_INLINE flag, recompiled and > > > ran our testsuite. cls_redirect.c (also in the kernel selftests) has a > > > test failure that I currently can't explain, but I don't have the time > > > to look at it in detail right now. > > > > > > > I've already converted test_cls_redirect.c in selftest to have > > __noinline variant. And it works fine. There are only 4 helper > > functions that can't be converted to a sub-program (pkt_parse_ipv4, > > pkt_parse_ipv6, and three buffer manipulation helpers) because they > > are accepting a pointer to a stack from a calling function, which > > won't work with subprograms. But all the other functions were > > trivially converted to __noinline and keep working. > > Yeah, that is very possible. Keep in mind though that our internal > version has since become more complex, and also has a more > comprehensive test suite. I wasn't sounding the alarms, it's just an > FYI that I appreciate the work that went into this and have taken a > look, but that I need to do some more digging :) > > cls_redirect.c (also in the kernel selftests) has a test failure that This sounded like there is a kernel selftest failure in cls_redirect.c after you removed FORCE_INLINE flag. So I was curious where the new failure is and whether it's in those 5 functions that just can't be not-always_inlined. > -- > Lorenz Bauer | Systems Engineer > 6th Floor, County Hall/The Riverside Building, SE1 7PB, UK > > www.cloudflare.com