Re: [PATCH bpf-next 0/5] Support local vmtest for riscv64
From: Pu Lehui <hidden>
Date: 2024-03-29 10:10:30
Also in:
bpf, linux-riscv
On 2024/3/29 17:08, Eduard Zingerman wrote:
On Thu, 2024-03-28 at 12:49 +0000, Pu Lehui wrote:quoted
Patch 1 is to enable cross platform testing for local vmtest. The remaining patch adds local vmtest support for riscv64. It relies on commit [0] [1] for better regression. 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 -- \ ./test_progs -d \ \"$(cat tools/testing/selftests/bpf/DENYLIST.riscv64 \ | cut -d'#' -f1 \ | sed -e 's/^[[:space:]]*//' \ -e 's/[[:space:]]*$//' \ | tr -s '\n' ','\ )\" 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) OpenSBI: 1.3.1 (default by QEMU) ROOTFS: ubuntu jammy (generated by [2]) Link: https://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git/commit/?id=ea6873118493 [0] Link: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=443574b033876c85 [1] Link: https://github.com/libbpf/ci/blob/main/rootfs/mkrootfs_debian.sh [2]Hello, I wanted to do a test run for this patch-set but did not figure out how to build rootfs for riscv64 system. I modified mkrootfs_debian.sh as below, but build command fails: $ ./rootfs/mkrootfs_debian.sh -d jammy -a riscv64 -m http://de.archive.ubuntu.com/ubuntu ... E: Couldn't download http://de.archive.ubuntu.com/ubuntu/dists/jammy/main/binary-riscv64/Packages Apparently jammy does not have binaries built for riscv64, or I'm failing to find correct mirror. Could you please provide some instructions on how to prepare rootfs?
Hi Eduard, We need the mirror repository of ubuntu-ports, you could try http://de.ports.ubuntu.com/.
quoted hunk ↗ jump to hunk
Thanks, Eduard --diff --git a/rootfs/mkrootfs_debian.sh b/rootfs/mkrootfs_debian.sh index dfe957e..1d5b769 100755 --- a/rootfs/mkrootfs_debian.sh +++ b/rootfs/mkrootfs_debian.sh@@ -16,6 +16,7 @@ CPUTABLE="${CPUTABLE:-/usr/share/dpkg/cputable}" deb_arch=$(dpkg --print-architecture) distro="bullseye" +mirror="" function usage() { echo "Usage: $0 [-a | --arch architecture] [-h | --help]@@ -25,6 +26,7 @@ By default build an image for the architecture of the host running the script. -a | --arch: architecture to build the image for. Default (${deb_arch}) -d | --distro: distribution to build. Default (${distro}) + -m | --mirror: mirror for distribution to build. Default (${mirror}) " }@@ -44,7 +46,7 @@ function qemu_static() { # Given a Debian architecture find the location of the matching # qemu-${gnu_arch}-static binary. gnu_arch=$(debian_to_gnu "${1}") - echo "qemu-${gnu_arch}-static" + echo "qemu-${gnu_arch}" } function check_requirements() {@@ -95,7 +97,7 @@ function check_requirements() { fi } -TEMP=$(getopt -l "arch:,distro:,help" -o "a:d:h" -- "$@") +TEMP=$(getopt -l "arch:,distro:,mirror:,help" -o "a:d:m:h" -- "$@") if [ $? -ne 0 ]; then usage fi@@ -113,6 +115,10 @@ while true; do distro="$2" shift 2 ;; + --mirror | -m) + mirror="$2" + shift 2 + ;; --help | -h) usage exit@@ -162,7 +168,8 @@ debootstrap --include="$packages" \ --arch="${deb_arch}" \ "$@" \ "${distro}" \ - "$root" + "$root" \ + "${mirror}" qemu=$(which $(qemu_static ${deb_arch}))