Thread (28 messages) 28 messages, 8 authors, 2024-04-03

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}))
  
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help