On Tue, Sep 21, 2021 at 05:59:22AM IST, Andrii Nakryiko wrote: > On Mon, Sep 20, 2021 at 7:15 AM Kumar Kartikeya Dwivedi > <memxor@xxxxxxxxx> wrote: > > > > This set enables kernel module function calls, and also modifies verifier logic > > to permit invalid kernel function calls as long as they are pruned as part of > > dead code elimination. This is done to provide better runtime portability for > > BPF objects, which can conditionally disable parts of code that are pruned later > > by the verifier (e.g. const volatile vars, kconfig options). libbpf > > modifications are made along with kernel changes to support module function > > calls. The set includes gen_loader support for emitting kfunc relocations. > > > > It also converts TCP congestion control objects to use the module kfunc support > > instead of relying on IS_BUILTIN ifdef. > > > > Changelog: > > ---------- > > v3 -> v4 > > Please use vmtest.sh locally to test everything. That should help to > avoid breaking our CI ([0]): > I'll look into it. There were some problems getting it to run on Arch and Fedora, so I instead tested in my own VM (GLIBC_2.33 not found). Surprisingly, everything passed when I ran it before sending. e.g. I still get this for the two failing tests in CI. [root@(none) bpf]# ./test_progs -t ksyms_module_libbpf #66 ksyms_module_libbpf:OK Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED [root@(none) bpf]# ./test_progs -t module_attach #81 module_attach:OK Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED -- Kartikeya