This series adds RISC-V JIT support for the timed may_goto loop bound. Patch 1 implements arch_bpf_timed_may_goto() and enables bpf_jit_supports_timed_may_goto() so the verifier uses the timed expansion path.
Patch 2 adds a test that checks R0-R5 are preserved across arch_bpf_timed_may_goto() calls. Patch 3 enables the verifier_may_goto_1, stream_cond_break, and may_goto_interaction fastcall tests on riscv64. Tested on riscv64 QEMU (rva23s64): may_goto programs load and JIT correctly, and the 250ms timeout path works as expected. Signed-off-by: Feng Jiang <[email protected]> --- Changes in v4: - Add 'bpf-next' prefix to match the BPF kernel tree workflow. - Add a test checking that R0-R5 are preserved across arch_bpf_timed_may_goto() calls. Use bpf_get_prandom_u32() to prevent the verifier from removing the checks via DCE. - Rename may_goto_interaction_arm64() to may_goto_interaction(). - Wrap the arch_bpf_timed_may_goto address check to a single line. - Link to v3: https://lore.kernel.org/r/[email protected] Changes in v3: - Set up the frame pointer in arch_bpf_timed_may_goto() so the function does not break stack unwinding under CONFIG_FRAME_POINTER. Changes in v2: - Fix BPF_REG_0 being clobbered after arch_bpf_timed_may_goto() calls. - Enable the may_goto_interaction fastcall test on riscv64. --- Feng Jiang (3): bpf, riscv: add support for timed may_goto selftests/bpf: test timed may_goto preserves R0-R5 selftests/bpf: enable timed may_goto tests for riscv64 arch/riscv/net/Makefile | 2 +- arch/riscv/net/bpf_jit_comp64.c | 12 ++++- arch/riscv/net/bpf_timed_may_goto.S | 47 +++++++++++++++++ tools/testing/selftests/bpf/progs/stream.c | 1 + .../selftests/bpf/progs/verifier_bpf_fastcall.c | 3 +- .../selftests/bpf/progs/verifier_may_goto_1.c | 61 ++++++++++++++++++++++ 6 files changed, 123 insertions(+), 3 deletions(-) --- base-commit: a23a71823352e2d792dcaae25f1ebb744acbfc0b change-id: 20260710-riscv-bpf-timed-may-goto-0dce564985af Best regards, -- Feng Jiang <[email protected]>

