Linux Kernel Selftest development
 help / color / mirror / Atom feed
* [PATCH bpf-next v5 0/3] bpf, riscv: add timed may_goto support
@ 2026-07-23  5:41 Feng Jiang
  2026-07-23  5:41 ` [PATCH bpf-next v5 1/3] bpf, riscv: add support for timed may_goto Feng Jiang
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Feng Jiang @ 2026-07-23  5:41 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Eduard Zingerman, Kumar Kartikeya Dwivedi, Martin KaFai Lau,
	Song Liu, Yonghong Song, Jiri Olsa, Emil Tsalapatis, Luke Nelson,
	Xi Wang, Björn Töpel, Pu Lehui, Puranjay Mohan,
	Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
	Shuah Khan, Ihor Solodrai
  Cc: bpf, linux-riscv, linux-kernel, linux-kselftest, Feng Jiang

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 <jiangfeng@kylinos.cn>
---
Changes in v5:
- Use REG_S/REG_L/SZREG in arch_bpf_timed_may_goto assembly. (Pu Lehui)
- Add __arch_s390x to the timed_may_goto_preserves_regs test. (Pu Lehui)
- Switch the preserves-regs test to SEC("syscall") to fix
  bpf_prog_test_run() EINVAL.
- Link to v4: https://lore.kernel.org/r/20260722-riscv-bpf-timed-may-goto-v4-0-e117e6337bc7@kylinos.cn

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/20260715-riscv-bpf-timed-may-goto-v3-0-cf2a9c3d843f@kylinos.cn

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      | 62 ++++++++++++++++++++++
 6 files changed, 124 insertions(+), 3 deletions(-)
---
base-commit: a23a71823352e2d792dcaae25f1ebb744acbfc0b
change-id: 20260710-riscv-bpf-timed-may-goto-0dce564985af

Best regards,
-- 
Feng Jiang <jiangfeng@kylinos.cn>


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-07-23 10:16 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-23  5:41 [PATCH bpf-next v5 0/3] bpf, riscv: add timed may_goto support Feng Jiang
2026-07-23  5:41 ` [PATCH bpf-next v5 1/3] bpf, riscv: add support for timed may_goto Feng Jiang
2026-07-23 10:10   ` Pu Lehui
2026-07-23  5:41 ` [PATCH bpf-next v5 2/3] selftests/bpf: test timed may_goto preserves R0-R5 Feng Jiang
2026-07-23 10:10   ` Pu Lehui
2026-07-23  5:41 ` [PATCH bpf-next v5 3/3] selftests/bpf: enable timed may_goto tests for riscv64 Feng Jiang
2026-07-23 10:15   ` Pu Lehui
2026-07-23 10:16 ` [PATCH bpf-next v5 0/3] bpf, riscv: add timed may_goto support Pu Lehui

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox