From af3934240c26c0718230d7cf2c6846861c07bd26 Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Mon, 26 Jan 2026 16:25:52 -0800 Subject: [PATCH 1/6] ci: sync local workflows with vmtest@main Signed-off-by: Ihor Solodrai --- .github/workflows/kernel-build.yml | 23 +++++++++++++++++++---- .github/workflows/kernel-test.yml | 2 ++ .github/workflows/test.yml | 6 +++--- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.github/workflows/kernel-build.yml b/.github/workflows/kernel-build.yml index c66d041d..1d66869a 100644 --- a/.github/workflows/kernel-build.yml +++ b/.github/workflows/kernel-build.yml @@ -64,10 +64,25 @@ jobs: KBUILD_OUTPUT: ${{ github.workspace }}/kbuild-output KERNEL: ${{ inputs.kernel }} KERNEL_ROOT: ${{ github.workspace }} + REFERENCE_REPO_PATH: /libbpfci/mirrors/linux REPO_PATH: "" REPO_ROOT: ${{ github.workspace }} RUNNER_TYPE: ${{ contains(fromJSON(inputs.runs_on), 'codebuild') && 'codebuild' || 'default' }} steps: + + # git version 2.43.0 (current Ubuntu 24 installation) + # does not support git clone --revision option + # so make sure latest git is installed + - name: Install latest git + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y software-properties-common + sudo add-apt-repository -y ppa:git-core/ppa + sudo apt-get update + sudo apt-get install -y git + git --version + - uses: actions/checkout@v4 with: fetch-depth: ${{ inputs.download_sources && 1 || env.BPF_NEXT_FETCH_DEPTH }} @@ -87,7 +102,7 @@ jobs: - uses: ./prepare-incremental-build with: - repo-root: ${{ inputs.download_sources && '.kernel' || env.REPO_ROOT }} + repo-root: '.kernel' base-branch: >- ${{ inputs.download_sources && env.BPF_NEXT_BASE_BRANCH || github.event_name == 'pull_request' && github.base_ref @@ -96,12 +111,12 @@ jobs: arch: ${{ inputs.arch }} toolchain_full: ${{ inputs.toolchain_full }} kbuild-output: ${{ env.KBUILD_OUTPUT }} - - if: ${{ inputs.download_sources }} - name: Move linux source in place + + - name: Move linux source in place shell: bash run: | cd .kernel - rm -rf .git + rm -rf .git .github ci mv -t .. $(ls -A) cd .. rmdir .kernel diff --git a/.github/workflows/kernel-test.yml b/.github/workflows/kernel-test.yml index 4c298516..2bd4daac 100644 --- a/.github/workflows/kernel-test.yml +++ b/.github/workflows/kernel-test.yml @@ -72,6 +72,8 @@ jobs: KERNEL_TEST: ${{ inputs.test }} SELFTESTS_BPF: ${{ github.workspace }}/selftests/bpf VMTEST_CONFIGS: ${{ github.workspace }}/ci/vmtest/configs + VMTEST_MEMORY: 5G + VMTEST_NUM_CPUS: 2 TEST_PROGS_TRAFFIC_MONITOR: ${{ inputs.arch == 'x86_64' && 'true' || '' }} TEST_PROGS_WATCHDOG_TIMEOUT: 600 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f7b176ea..11600753 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,8 +18,8 @@ jobs: build_runs_on: ["ubuntu-24.04"] arch: ["x86_64"] kernel_compiler: ["gcc", "llvm"] - gcc_version: [15] - llvm_version: [20] + gcc_version: [14] + llvm_version: [21] kernel: ["LATEST"] build_release: [false] tests: @@ -28,7 +28,7 @@ jobs: - {"test": "test_progs_no_alu32", "continue_on_error": false, "timeout_minutes": 360} - {"test": "test_verifier", "continue_on_error": false, "timeout_minutes": 360} - {"test": "test_maps", "continue_on_error": false, "timeout_minutes": 360} - - {"test": "sched_ext", "continue_on_error": false, "timeout_minutes": 360} + # - {"test": "sched_ext", "continue_on_error": false, "timeout_minutes": 360} # - {"test": "test_progs-bpf_gcc", "continue_on_error": false, "timeout_minutes": 360} fail-fast: false From 56dff046c33c475c538c6b37b4f04b44deb4e3c9 Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Wed, 21 Jan 2026 17:05:23 -0800 Subject: [PATCH 2/6] setup-build-env: Make sure llvm-dev is installed There BPF selftests that depend on llvm-dev libraries. Make sure they are installed (by specifying "all" to llvm.sh), and ensure LLVM_CONFIG is set correctly when building selftests. Signed-off-by: Ihor Solodrai --- build-selftests/build_selftests.sh | 1 + setup-build-env/action.sh | 2 +- setup-build-env/install_clang.sh | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build-selftests/build_selftests.sh b/build-selftests/build_selftests.sh index 03049bb4..103d24f9 100755 --- a/build-selftests/build_selftests.sh +++ b/build-selftests/build_selftests.sh @@ -39,6 +39,7 @@ MAKE_OPTS=$(cat <= 15 is not available in Ubuntu 24 diff --git a/setup-build-env/install_clang.sh b/setup-build-env/install_clang.sh index 62447ee2..97e78816 100755 --- a/setup-build-env/install_clang.sh +++ b/setup-build-env/install_clang.sh @@ -12,6 +12,6 @@ sudo -E apt-get install --no-install-recommends -y \ curl -O https://apt.llvm.org/llvm.sh chmod +x llvm.sh -sudo ./llvm.sh ${LLVM_VERSION} +sudo ./llvm.sh ${LLVM_VERSION} all foldable end install_clang From f5b3adc39fb14f93fad005bdf8024d1664b270ac Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Wed, 21 Jan 2026 17:07:11 -0800 Subject: [PATCH 3/6] setup-build-env: Set -DCMAKE_INSTALL_PREFIX=/usr for pahole Fixup pahole build flags to make LD_LIBRARY_PATH export unnecessary. Signed-off-by: Ihor Solodrai --- setup-build-env/build_pahole.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/setup-build-env/build_pahole.sh b/setup-build-env/build_pahole.sh index 9e607232..8f403d84 100755 --- a/setup-build-env/build_pahole.sh +++ b/setup-build-env/build_pahole.sh @@ -26,11 +26,9 @@ git remote add origin ${PAHOLE_ORIGIN} git fetch --depth=1 origin "${PAHOLE_BRANCH}" git checkout "${PAHOLE_BRANCH}" -mkdir -p build -cd build -cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -D__LIB=lib .. -make -j$((4*$(nproc))) -sudo make install +cmake -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr +make -C build -j$(nproc) +sudo make -C build install export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:/usr/local/lib ldd $(which pahole) From 19bf6f7efa024fd79368773e72973c3b512ca8ff Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Wed, 21 Jan 2026 17:08:24 -0800 Subject: [PATCH 4/6] setup-build-env: Conditionalize ubuntu-specific fragments Check for $ID (provided by /etc/os-release) before executing Ubuntu-specific hackery. This allows to run setup-build-env scripts on Debian. Signed-off-by: Ihor Solodrai --- .../install_cross_compilation_toolchain.sh | 20 ++++++++++--------- setup-build-env/install_packages.sh | 12 ++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/setup-build-env/install_cross_compilation_toolchain.sh b/setup-build-env/install_cross_compilation_toolchain.sh index 17b2e072..927d6ded 100755 --- a/setup-build-env/install_cross_compilation_toolchain.sh +++ b/setup-build-env/install_cross_compilation_toolchain.sh @@ -20,21 +20,21 @@ source /etc/os-release DEB_ARCH="$(platform_to_deb_arch "${TARGET_ARCH}")" DEB_HOST_ARCH="$(dpkg --print-architecture)" GCC_VERSION=${GCC_VERSION:-14} -UBUNTU_CODENAME=${UBUNTU_CODENAME:-noble} -if [ "${GCC_VERSION}" -ge 15 ]; then - UBUNTU_CODENAME=${UBUNTU_CODENAME_OVERRIDE} -fi +if [ "${ID}" == "ubuntu" ]; then + UBUNTU_CODENAME=${UBUNTU_CODENAME:-noble} + if [ "${GCC_VERSION}" -ge 15 ]; then + UBUNTU_CODENAME=${UBUNTU_CODENAME_OVERRIDE} + fi -# Disable other apt sources for foreign architectures to avoid 404 errors -# Only allow fetching packages for the added architecture from ports.ubuntu.com -sudo tee /etc/apt/apt.conf.d/99-no-foreign-arch < Date: Thu, 22 Jan 2026 13:54:27 -0800 Subject: [PATCH 5/6] setup-build-env: Install binfmt as part of cross-compilation toolchain It's necessary for running bpftool and resolve_btfids during selftests build. Signed-off-by: Ihor Solodrai --- setup-build-env/install_cross_compilation_toolchain.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/setup-build-env/install_cross_compilation_toolchain.sh b/setup-build-env/install_cross_compilation_toolchain.sh index 927d6ded..79ba982e 100755 --- a/setup-build-env/install_cross_compilation_toolchain.sh +++ b/setup-build-env/install_cross_compilation_toolchain.sh @@ -47,6 +47,7 @@ fi sudo dpkg --add-architecture "$DEB_ARCH" sudo apt-get update -y sudo apt-get install -y --no-install-recommends \ + binfmt-support qemu-user-static \ "gcc-${GCC_VERSION}-${TARGET_ARCH}-linux-gnu" \ "g++-${GCC_VERSION}-${TARGET_ARCH}-linux-gnu" \ "linux-libc-dev:${DEB_ARCH}" \ From 976166e5d627e914b40340f289b41df450df6f13 Mon Sep 17 00:00:00 2001 From: Ihor Solodrai Date: Thu, 22 Jan 2026 14:35:46 -0800 Subject: [PATCH 6/6] run-vmtest/install-dependencies.sh: Add llvm-dev Signed-off-by: Ihor Solodrai --- run-vmtest/install-dependencies.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/run-vmtest/install-dependencies.sh b/run-vmtest/install-dependencies.sh index 855f105f..7779496c 100755 --- a/run-vmtest/install-dependencies.sh +++ b/run-vmtest/install-dependencies.sh @@ -9,6 +9,8 @@ sudo chmod 755 /usr/bin/vmtest sudo apt-get update -y sudo -E apt-get install --no-install-recommends -y \ - binutils cpu-checker ethtool gawk iproute2 iptables iputils-ping keyutils libpcap-dev make + binutils cpu-checker ethtool gawk iproute2 iptables iputils-ping \ + keyutils libpcap-dev llvm-dev libz3-4 make zlib1g + sudo -E apt-get install --no-install-recommends -y \ qemu-guest-agent qemu-kvm qemu-system-arm qemu-system-s390x qemu-system-x86 qemu-utils