With this series, all of the related testcases passed on LoongArch:
$ sudo modprobe test_bpf test_suite=test_tail_calls
test_bpf: #0 Tail call leaf jited:1 17 PASS
test_bpf: #1 Tail call 2 jited:1 21 PASS
test_bpf: #2 Tail call 3 jited:1 25 PASS
test_bpf: #3 Tail call 4 jited:1 28 PASS
test_bpf: #4 Tail call load/store leaf jited:1 19 PASS
test_bpf: #5 Tail call load/store jited:1 23 PASS
test_bpf: #6 Tail call error path, max count reached jited:1 172 PASS
test_bpf: #7 Tail call count preserved across function calls jited:1 1123 PASS
test_bpf: #8 Tail call error path, NULL target jited:1 18 PASS
test_bpf: #9 Tail call error path, index out of range jited:1 18 PASS
test_bpf: test_tail_calls: Summary: 10 PASSED, 0 FAILED, [10/10 JIT'ed]
$ sudo ./test_progs -t tailcalls
#465/1 tailcalls/tailcall_1:OK
#465/2 tailcalls/tailcall_2:OK
#465/3 tailcalls/tailcall_3:OK
#465/4 tailcalls/tailcall_4:OK
#465/5 tailcalls/tailcall_5:OK
#465/6 tailcalls/tailcall_6:OK
#465/7 tailcalls/tailcall_bpf2bpf_1:OK
#465/8 tailcalls/tailcall_bpf2bpf_2:OK
#465/9 tailcalls/tailcall_bpf2bpf_3:OK
#465/10 tailcalls/tailcall_bpf2bpf_4:OK
#465/11 tailcalls/tailcall_bpf2bpf_5:OK
#465/12 tailcalls/tailcall_bpf2bpf_6:OK
#465/13 tailcalls/tailcall_bpf2bpf_fentry:OK
#465/14 tailcalls/tailcall_bpf2bpf_fexit:OK
#465/15 tailcalls/tailcall_bpf2bpf_fentry_fexit:OK
#465/16 tailcalls/tailcall_bpf2bpf_fentry_entry:OK
#465/17 tailcalls/tailcall_poke:OK
#465/18 tailcalls/tailcall_bpf2bpf_hierarchy_1:OK
#465/19 tailcalls/tailcall_bpf2bpf_hierarchy_fentry:OK
#465/20 tailcalls/tailcall_bpf2bpf_hierarchy_fexit:OK
#465/21 tailcalls/tailcall_bpf2bpf_hierarchy_fentry_fexit:OK
#465/22 tailcalls/tailcall_bpf2bpf_hierarchy_fentry_entry:OK
#465/23 tailcalls/tailcall_bpf2bpf_hierarchy_2:OK
#465/24 tailcalls/tailcall_bpf2bpf_hierarchy_3:OK
#465/25 tailcalls/tailcall_freplace:OK
#465/26 tailcalls/tailcall_bpf2bpf_freplace:OK
#465/27 tailcalls/tailcall_failure:OK
#465/28 tailcalls/reject_tail_call_spin_lock:OK
#465/29 tailcalls/reject_tail_call_rcu_lock:OK
#465/30 tailcalls/reject_tail_call_preempt_lock:OK
#465/31 tailcalls/reject_tail_call_ref:OK
#465/32 tailcalls/tailcall_sleepable:OK
#465 tailcalls:OK
Summary: 1/32 PASSED, 0 SKIPPED, 0 FAILED
Tiezhu Yang (3):
LoongArch: BPF: Fix tail call prologue alignment
LoongArch: BPF: Fix outdated tail call comments
LoongArch: BPF: Fix off-by-one error in tail call
arch/loongarch/net/bpf_jit.c | 38 ++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
--
2.42.0