Re: [PATCH bpf] selftests: bpf: check map in map pruning
From: Andrii Nakryiko <hidden>
Date: 2021-11-18 01:38:55
Also in:
bpf, linux-kselftest, lkml
On Wed, Nov 17, 2021 at 5:29 PM Andrii Nakryiko [off-list ref] wrote:
On Wed, Nov 17, 2021 at 5:01 PM Alexei Starovoitov [off-list ref] wrote:quoted
On Wed, Nov 17, 2021 at 08:47:45AM +0000, Lorenz Bauer wrote:quoted
On Sat, 13 Nov 2021 at 01:27, Alexei Starovoitov [off-list ref] wrote:quoted
Not sure how you've tested it, but it doesn't work in unpriv: $ test_verifier 789 #789/u map in map state pruning FAIL processed 26 insns (limit 1000000) max_states_per_insn 0 total_states 2 peak_states 2 mark_read 1 #789/p map in map state pruning OKStrange, I have a script that I use for bisecting which uses a minimal .config + virtue to run a vm, plus I was debugging in gdb at the same time. I might have missed this, apologies. I guess vmtest.sh is the canonical way to run tests now?vmtest.sh runs test_progs only. That's the minimum bar thatIt runs test_progs by default, unless something else is requested. You can run anything inside it, e.g.: ./vmtest.sh -- ./test_maps BTW, we recently moved configs around in libbpf repo on Github, so this script broke. I'm sending a fix in a few minutes, hopefully.
... and of course it's not that simple. [0] recently changed how we build qemu image and vmtest.sh had some assumptions. Some trivial things I fixed, but I'm not too familiar with the init scripts stuff. Adding Ilya and KP to hopefully help with this. Ilya, KP, can you please help restore vmtest.sh functionality? After fixing few paths:
diff --git a/tools/testing/selftests/bpf/vmtest.shb/tools/testing/selftests/bpf/vmtest.sh index 027198768fad..7ea40108b85d 100755
--- a/tools/testing/selftests/bpf/vmtest.sh
+++ b/tools/testing/selftests/bpf/vmtest.sh@@ -13,8 +13,8 @@ DEFAULT_COMMAND="./test_progs" MOUNT_DIR="mnt" ROOTFS_IMAGE="root.img" OUTPUT_DIR="$HOME/.bpf_selftests" -KCONFIG_URL="https://raw.githubusercontent.com/libbpf/libbpf/master/travis-ci/vmtest/configs/latest.config" -KCONFIG_API_URL="https://api.github.com/repos/libbpf/libbpf/contents/travis-ci/vmtest/configs/latest.config" +KCONFIG_URL="https://raw.githubusercontent.com/libbpf/libbpf/master/travis-ci/vmtest/configs/config-latest.x86_64" +KCONFIG_API_URL="https://api.github.com/repos/libbpf/libbpf/contents/travis-ci/vmtest/configs/config-latest.x86_64" INDEX_URL="https://raw.githubusercontent.com/libbpf/libbpf/master/travis-ci/vmtest/configs/INDEX" NUM_COMPILE_JOBS="$(nproc)" LOG_FILE_BASE="$(date +"bpf_selftests.%Y-%m-%d_%H-%M-%S")"
@@ -85,7 +85,7 @@ newest_rootfs_version() { { for file in "${!URLS[@]}"; do - if [[ $file =~ ^libbpf-vmtest-rootfs-(.*)\.tar\.zst$ ]]; then + if [[ $file =~
^x86_64/libbpf-vmtest-rootfs-(.*)\.tar\.zst$ ]]; then
echo "${BASH_REMATCH[1]}"
fi
done
... the next problem is more severe. Script complains about missing
/etc/rcS.d, if I just force-created it, when kernel boots we get:
[ 1.050803] ---[ end Kernel panic - not syncing: No working init
found. Try passing init= option to kernel. See Linux
Documentation/admin-guide/init.rst for guidance. ]---
Please help.
[0] https://github.com/libbpf/libbpf/pull/204
quoted
developers have to pass before sending patches. BPF CI runs test_progs, test_progs-no_alu32, test_verifier and test_maps. If in doubt run them all.