[PATCH bpf-next v3 0/8] Support bpf trampoline for s390x

Ilya Leoshkevich
2023-01-29T19:05:36Z

v2: https://lore.kernel.org/bpf/20230128000650.1516334-1-iii@linux.ibm.com/#t
v2 -> v3:
- Make __arch_prepare_bpf_trampoline static.
(Reported-by: kernel test robot <lkp@intel.com>)
- Support both old- and new- style map definitions in sk_assign. (Alexei)
- Trim DENYLIST.s390x. (Alexei)
- Adjust s390x vmlinux path in vmtest.sh.
- Drop merged fixes.

v1: https://lore.kernel.org/bpf/20230125213817.1424447-1-iii@linux.ibm.com/#t
v1 -> v2:
- Fix core_read_macros, sk_assign, test_profiler, test_bpffs (24/31;
I'm not quite happy with the fix, but don't have better ideas),
and xdp_synproxy. (Andrii)
- Prettify liburandom_read and verify_pkcs7_sig fixes. (Andrii)
- Fix bpf_usdt_arg using barrier_var(); prettify barrier_var(). (Andrii)
- Change BPF_MAX_TRAMP_LINKS to enum and query it using BTF. (Andrii)
- Improve bpf_jit_supports_kfunc_call() description. (Alexei)
- Always check sign_extend() return value.
- Cc: Alexander Gordeev.

Hi,

This series implements poke, trampoline, kfunc, and mixing subprogs
and tailcalls on s390x.

The following failures still remain:

#82 get_stack_raw_tp:FAIL
get_stack_print_output:FAIL:user_stack corrupted user stack
Known issue:
We cannot reliably unwind userspace on s390x without DWARF.

#101 ksyms_module:FAIL
address of kernel function bpf_testmod_test_mod_kfunc is out of range
Known issue:
Kernel and modules are too far away from each other on s390x.

#190 stacktrace_build_id:FAIL
Known issue:
We cannot reliably unwind userspace on s390x without DWARF.

#281 xdp_metadata:FAIL
See patch 6.

None of these seem to be due to the new changes.

Best regards,
Ilya

Ilya Leoshkevich (8):
selftests/bpf: Fix sk_assign on s390x
s390/bpf: Add expoline to tail calls
s390/bpf: Implement bpf_arch_text_poke()
s390/bpf: Implement arch_prepare_bpf_trampoline()
s390/bpf: Implement bpf_jit_supports_subprog_tailcalls()
s390/bpf: Implement bpf_jit_supports_kfunc_call()
selftests/bpf: Fix s390x vmlinux path
selftests/bpf: Trim DENYLIST.s390x

arch/s390/net/bpf_jit_comp.c | 713 +++++++++++++++++-
include/linux/bpf.h | 4 +
tools/testing/selftests/bpf/DENYLIST.s390x | 69 --
.../selftests/bpf/prog_tests/sk_assign.c | 25 +-
.../selftests/bpf/progs/test_sk_assign.c | 11 +
.../bpf/progs/test_sk_assign_libbpf.c | 3 +
tools/testing/selftests/bpf/vmtest.sh | 2 +-
7 files changed, 715 insertions(+), 112 deletions(-)
create mode 100644 tools/testing/selftests/bpf/progs/test_sk_assign_libbpf.c

--
2.39.1