• Jiri Olsa's avatar
    bpf: Move kernel test kfuncs to bpf_testmod · 65eb006d
    Jiri Olsa authored
    Moving kernel test kfuncs into bpf_testmod kernel module, and adding
    necessary init calls and BTF IDs records.
    
    We need to keep following structs in kernel:
      struct prog_test_ref_kfunc
      struct prog_test_member (embedded in prog_test_ref_kfunc)
    
    The reason is because they need to be marked as rcu safe (check test
    prog mark_ref_as_untrusted_or_null) and such objects are being required
    to be defined only in kernel at the moment (see rcu_safe_kptr check
    in kernel).
    
    We need to keep also dtor functions for both objects in kernel:
      bpf_kfunc_call_test_release
      bpf_kfunc_call_memb_release
    
    We also keep the copy of these struct in bpf_testmod_kfunc.h, because
    other test functions use them. This is unfortunate, but this is just
    temporary solution until we are able to these structs them to bpf_testmod
    completely.
    
    As suggested by David adding bpf_testmod.ko make dependency for
    bpf programs, so they are rebuilt if we change the bpf_testmod.ko
    module.
    
    Also adding missing __bpf_kfunc to bpf_kfunc_call_test4 functions.
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Acked-by: default avatarDavid Vernet <void@manifault.com>
    Link: https://lore.kernel.org/r/20230515133756.1658301-11-jolsa@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    65eb006d
test_run.c 39 KB