summaryrefslogtreecommitdiff
path: root/rust
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2023-03-15 01:28:11 +0300
committerAlexei Starovoitov <ast@kernel.org>2023-03-15 01:28:11 +0300
commit3c2611bac08a834697be918ac357eaff2e47d5b3 (patch)
treec2664c03c90c3fcde68eafd78437d29cae82369e /rust
parent5584d9e63eee25c6ccf36aa5d09efc113d762a05 (diff)
downloadlinux-3c2611bac08a834697be918ac357eaff2e47d5b3.tar.xz
selftests/bpf: Fix trace_virtqueue_add_sgs test issue with LLVM 17.
LLVM commit https://reviews.llvm.org/D143726 introduced hoistMinMax optimization that transformed (i < VIRTIO_MAX_SGS) && (i < out_sgs) into i < MIN(VIRTIO_MAX_SGS, out_sgs) and caused the verifier to stop recognizing such loop as bounded. Which resulted in the following test failure: libbpf: prog 'trace_virtqueue_add_sgs': BPF program load failed: Bad address libbpf: prog 'trace_virtqueue_add_sgs': -- BEGIN PROG LOAD LOG -- The sequence of 8193 jumps is too complex. verification time 789206 usec stack depth 56 processed 156446 insns (limit 1000000) max_states_per_insn 7 total_states 1746 peak_states 1701 mark_read 12 -- END PROG LOAD LOG -- libbpf: prog 'trace_virtqueue_add_sgs': failed to load: -14 libbpf: failed to load object 'loop6.bpf.o' Workaround the verifier limitation for now with inline asm that prevents this particular optimization. Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'rust')
0 files changed, 0 insertions, 0 deletions