This gets rid of indirect jumps for BPF tail calls whenever possible. See patch 7/8 for more general details. This is on top of Alexei's '[v4,bpf-next,00/20] Introduce BPF trampoline' series [0]. For non-RFC I'll still massage commit messages a bit and expand the existing set of tail call tests with a few more kselftest cases. Thanks, Daniel [0] https://patchwork.ozlabs.org/project/netdev/list/?series=142923 Daniel Borkmann (8): bpf, x86: generalize and extend bpf_arch_text_poke for direct jumps bpf: add bpf_prog_under_eviction helper bpf: move bpf_free_used_maps into sleepable section bpf: move owner type,jited info into array auxillary data bpf: add jit poke descriptor mock-up for jit images bpf: add poke dependency tracking for prog array maps bpf, x86: emit patchable direct jump as tail call bpf: constant map key tracking for prog array pokes arch/x86/net/bpf_jit_comp.c | 234 ++++++++++++++++++++++++----------- include/linux/bpf.h | 85 +++++++++++-- include/linux/bpf_verifier.h | 1 + include/linux/filter.h | 10 ++ kernel/bpf/arraymap.c | 152 ++++++++++++++++++++++- kernel/bpf/core.c | 73 ++++++++++- kernel/bpf/map_in_map.c | 5 +- kernel/bpf/syscall.c | 41 ++---- kernel/bpf/verifier.c | 98 +++++++++++++++ 9 files changed, 578 insertions(+), 121 deletions(-) -- 2.21.0