Lehui, Daniel! Pu Lehui <pulehui@xxxxxxxxxxxxxxx> writes: > On 2024/9/6 2:52, Daniel Borkmann wrote: >> On 9/5/24 10:13 AM, Pu Lehui wrote: >>> Patch 1-3 fix some problem about bpf selftests. Patch 4 add local rootfs >>> image support for vmtest. Patch 5 enable cross-platform testing for >>> vmtest. Patch 6-10 enable vmtest on RV64. >>> >>> We can now perform cross platform testing for riscv64 bpf using the >>> following command: >>> >>> PLATFORM=riscv64 CROSS_COMPILE=riscv64-linux-gnu- \ >>> tools/testing/selftests/bpf/vmtest.sh \ >>> -l <path of local rootfs image> -- \ >>> ./test_progs -d \ >>> \"$(cat tools/testing/selftests/bpf/DENYLIST.riscv64 \ >>> | cut -d'#' -f1 \ >>> | sed -e 's/^[[:space:]]*//' \ >>> -e 's/[[:space:]]*$//' \ >>> | tr -s '\n' ',' \ >>> )\" >>> >>> For better regression, we rely on commit [0]. And since the work of riscv >>> ftrace to remove stop_machine atomic replacement is in progress, we also >>> need to revert commit [1] [2]. >>> >>> The test platform is x86_64 architecture, and the versions of relevant >>> components are as follows: >>> QEMU: 8.2.0 >>> CLANG: 17.0.6 (align to BPF CI) >>> ROOTFS: ubuntu noble (generated by [3]) >>> >>> Link: >>> https://lore.kernel.org/all/20240831071520.1630360-1-pulehui@xxxxxxxxxxxxxxx/ [0] >>> Link: >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3308172276db [1] >>> Link: >>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7caa9765465f [2] >>> Link: https://github.com/libbpf/ci/blob/main/rootfs/mkrootfs_debian.sh >>> [3] >> >> Nice work! Next step is upstream BPF CI integration? :) > > CC Björn😁 Indeed, very nice work! Every year is "The year of RISC-V BPF CI integration". :-P > Yeah, that's what we're most looking forward to and we've been trying to > move forward with that. There are currently several options, but they > are not very suitable yet. > > 1. Cross-platform testing with subset of tests (test_verifier + > test_progs), it will cost a bit more time. > > x86_64 host: > Summary: 536/3594 PASSED, 68 SKIPPED, 0 FAILED > real 30m 18.88s > user 6m 52.97s > sys 21m 3.03s > > 2. Cross-platform testing will parallel mode, it will meet flaky > problems while the time consume looks good. > > x86_64 host: > real 7m 45.42s > user 6m 13.59s > sys 15m 41.12s > > 3. Real board testing, which relies on Hypervisor Extension to enable > kvm on qemu. We are still trying to find a suitable board. There's a board coming out soonish with H -- let's hope it doesn't suck! ;-) I have a CI running, that's runs all the BPF tests (and the rest of kselftest) on various trees/branches, and it takes *hours* on QEMU TCG [1] (the GH CI doesn't report fail/ok in the UI, so you need to download the logs [2] -- filename *kselftest-bpf*). Obviously this is a no-go for pre-commit/patchwork CI, but for, say, a longer release test (post-commit), spending a couple of hours on a test would probably be OK. If there's a post-commit CI running somewhere, maybe we could plug in RISC-V BPF QEMU TCG tests there? ...and then when we get proper H machines, we can add RISC-V to Meta's PW CI as well. Daniel, is there a "release test CI" running, or is that mostly manual work? Björn [1] https://github.com/linux-riscv/linux-riscv/actions/runs/10725237865/job/29742632222#step:5:30 [2] https://github.com/linux-riscv/linux-riscv/actions/runs/10725237865/artifacts/1899421897