• Martin KaFai Lau's avatar
    selftests/bpf: Add tailcall epilogue test · b191b0fd
    Martin KaFai Lau authored
    This patch adds a gen_epilogue test to test a main prog
    using a bpf_tail_call.
    
    A non test_loader test is used. The tailcall target program,
    "test_epilogue_subprog", needs to be used in a struct_ops map
    before it can be loaded. Another struct_ops map is also needed
    to host the actual "test_epilogue_tailcall" struct_ops program
    that does the bpf_tail_call. The earlier test_loader patch
    will attach all struct_ops maps but the bpf_testmod.c does
    not support >1 attached struct_ops.
    
    The earlier patch used the test_loader which has already covered
    checking for the patched pro/epilogue instructions. This is done
    by the __xlated tag.
    
    This patch goes for the regular skel load and syscall test to do
    the tailcall test that can also allow to directly pass the
    the "struct st_ops_args *args" as ctx_in to the
    SEC("syscall") program.
    Acked-by: default avatarEduard Zingerman <eddyz87@gmail.com>
    Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
    Link: https://lore.kernel.org/r/20240829210833.388152-8-martin.lau@linux.devSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    b191b0fd
epilogue_tailcall.c 1.29 KB