Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions build-selftests/build_selftests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ fi

foldable start build_selftests "Building selftests with $TOOLCHAIN"

MAKE_OPTS=$(cat <<EOF
MAKE_OPTS=(
ARCH=${ARCH}
BPF_GCC=${BPF_GCC}
CROSS_COMPILE=${CROSS_COMPILE}
Expand All @@ -43,15 +43,18 @@ MAKE_OPTS=$(cat <<EOF
LLVM_STRIP=llvm-strip-${LLVM_VERSION}
VMLINUX_BTF=${VMLINUX_BTF}
VMLINUX_H=${VMLINUX_H}
EXTRA_LDFLAGS=-static
EOF
)
SELF_OPTS=$(cat <<EOF
-C ${KERNEL_ROOT}/tools/testing/selftests/bpf
EOF
)
make ${MAKE_OPTS} -C ${KERNEL_ROOT} headers
make ${MAKE_OPTS} ${SELF_OPTS} clean
make ${MAKE_OPTS} ${SELF_OPTS} -j $(kernel_build_make_jobs) ${SELFTESTS_BPF_TARGETS:-}

SELF_OPTS=(-C "${KERNEL_ROOT}/tools/testing/selftests/bpf")

if [[ -n "${SELFTESTS_BPF_ASAN:-}" ]]; then
SELF_OPTS+=(ASAN=1)
else # static build by default
SELF_OPTS+=(EXTRA_LDFLAGS=-static)
fi

make "${MAKE_OPTS[@]}" -C ${KERNEL_ROOT} headers
make "${MAKE_OPTS[@]}" "${SELF_OPTS[@]}" clean
make "${MAKE_OPTS[@]}" "${SELF_OPTS[@]}" -j $(kernel_build_make_jobs) ${SELFTESTS_BPF_TARGETS:-}

foldable end build_selftests
5 changes: 1 addition & 4 deletions helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,8 @@ llvm_latest_version() {
echo "19"
}

# No arguments
kernel_build_make_jobs() {
# returns the number of processes to use when building kernel/selftests/samples
# default to 4*nproc if MAX_MAKE_JOBS is not defined
smp=$((4*$(nproc)))
smp=$(( $(nproc) - 1 ))
MAX_MAKE_JOBS=${MAX_MAKE_JOBS:-$smp}
echo $(( smp > MAX_MAKE_JOBS ? MAX_MAKE_JOBS : smp ))
}
Expand Down
13 changes: 12 additions & 1 deletion run-vmtest/install-dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,18 @@ 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 llvm-dev libz3-4 make zlib1g
keyutils libasan8 libpcap-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

# Install specific version of libllvm on Ubuntu
source /etc/os-release
if [[ "$ID" == "ubuntu" ]]; then
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
CODENAME=$(lsb_release -cs)
echo "deb http://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME}-${LLVM_VERSION} main" | \
sudo tee /etc/apt/sources.list.d/llvm-${LLVM_VERSION}.list
sudo apt-get update -y
sudo apt-get install --no-install-recommends -y libllvm${LLVM_VERSION}
fi
2 changes: 1 addition & 1 deletion run-vmtest/prepare-bpf-selftests.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

set -euo pipefail
set -xeuo pipefail

if [[ -z "${SELFTESTS_BPF_ALLOWLIST_FILES:-}" && -z "${SELFTESTS_BPF_DENYLIST_FILES:-}" ]]; then
exit 0
Expand Down
3 changes: 2 additions & 1 deletion run-vmtest/run-bpf-selftests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@
# Runners passed as arguments are executed. In case of no arguments,
# all test runners are executed.

set -euo pipefail
set -xeuo pipefail

source "$(cd "$(dirname "$0")" && pwd)/helpers.sh"

ARCH=$(uname -m)

export SELFTESTS_BPF=${SELFTESTS_BPF:-/mnt/vmtest/selftests/bpf}
export BPFTOOL=$(find $(realpath "$SELFTESTS_BPF/tools/sbin") -type f -name bpftool)

STATUS_FILE=${STATUS_FILE:-/mnt/vmtest/exitstatus}
OUTPUT_DIR=${OUTPUT_DIR:-/mnt/vmtest}
Expand Down
4 changes: 3 additions & 1 deletion run-vmtest/run.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
#!/bin/bash

set -euo pipefail
set -xeuo pipefail
trap 'exit 2' ERR

source "${GITHUB_ACTION_PATH}/../helpers.sh"

export ARCH=${ARCH:-$(uname -m)}
export KERNEL=${KERNEL:-"LATEST"}

export VMLINUZ=${VMLINUZ:-}
if [[ ! -f "${VMLINUZ}" ]]; then
Expand Down Expand Up @@ -112,6 +113,7 @@ cat $VMTEST_TOML
foldable end vmtest_toml

vmtest -c $VMTEST_TOML
rm -f $VMTEST_TOML

# fixup traffic montioring log paths if present
PCAP_DIR=/tmp/tmon_pcap
Expand Down
6 changes: 3 additions & 3 deletions setup-build-env/install_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ sudo -E apt-get install --no-install-recommends -y \
python3-docutils python3-minimal rsync sudo texinfo tree \
tzdata wget xxd xz-utils zstd

sudo -E apt-get install --no-install-recommends -y \
binutils-dev libcap-dev libdw-dev libelf-dev libpcap-dev \
libssl-dev libzstd-dev ncurses-dev
sudo -E apt-get install --no-install-recommends -y \
binutils-dev libasan8 libcap-dev libdw-dev libelf-dev \
libpcap-dev libssl-dev libzstd-dev ncurses-dev

sudo -E apt-get install --no-install-recommends -y \
qemu-guest-agent qemu-kvm qemu-system-arm qemu-system-s390x \
Expand Down
27 changes: 15 additions & 12 deletions tar-artifacts/tar-artifacts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ zst_tarball="$1"
arch="${ARCH}"

ARCHIVE_BPF_SELFTESTS="${ARCHIVE_BPF_SELFTESTS:-true}"
ARCHIVE_KBUILD_OUTPUT="${ARCHIVE_KBUILD_OUTPUT:-true}"
ARCHIVE_MAKE_HELPERS="${ARCHIVE_MAKE_HELPERS:-}"
ARCHIVE_SCHED_EXT_SELFTESTS="${ARCHIVE_SCHED_EXT_SELFTESTS:-}"

Expand All @@ -40,18 +41,20 @@ function push_to_kout_list() {
fi
}

cd "${KBUILD_OUTPUT}"
push_to_kout_list "Module.symvers"
push_to_kout_list "scripts/"
push_to_kout_list "tools/objtool/"
for dir in $(find . -type d -name "include"); do
push_to_kout_list "${dir}/"
done
cd -

tar -rf "${tarball}" -C "${KBUILD_OUTPUT}" \
--transform "s,^,kbuild-output/," \
"${kbuild_output_file_list[@]}"
if [[ -n "${ARCHIVE_KBUILD_OUTPUT}" ]]; then
cd "${KBUILD_OUTPUT}"
push_to_kout_list "Module.symvers"
push_to_kout_list "scripts/"
push_to_kout_list "tools/objtool/"
for dir in $(find . -type d -name "include"); do
push_to_kout_list "${dir}/"
done
cd -

tar -rf "${tarball}" -C "${KBUILD_OUTPUT}" \
--transform "s,^,kbuild-output/," \
"${kbuild_output_file_list[@]}"
fi

# In case artifacts are restored not to the kernel repo root,
# package up a bunch of additional infrastructure to support running
Expand Down
Loading