Skip to content

Commit

Permalink
Merge pull request #25 from sched-ext/scx-6.9-rc7
Browse files Browse the repository at this point in the history
v6.9-scx1-rc7
  • Loading branch information
Byte-Lab authored May 8, 2024
2 parents 2a7c915 + a76b58e commit b48afd2
Show file tree
Hide file tree
Showing 621 changed files with 7,440 additions and 3,606 deletions.
56 changes: 39 additions & 17 deletions .github/workflows/run-schedulers
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,26 @@ if [ ! -x `which vng` ]; then
exit 1
fi

function runtest() {
local bin="${1}"

if [ -z "${bin}" ]; then
echo "No binary passed to runtest"
exit 1
fi

if ! [ -f "${bin}" ]; then
echo "Binary ${bin} was not a regular file"
exit 1
fi

rm -f /tmp/output
(timeout --foreground --preserve-status ${GUEST_TIMEOUT} \
vng --force-9p --verbose -- \
"timeout --foreground --preserve-status ${TEST_TIMEOUT} ${bin}" \
2>&1 </dev/null || true) | tee /tmp/output
}

# Test all the available schedulers.
#
# NOTE: virtme-ng automatically runs the kernel from the current working
Expand All @@ -24,23 +44,14 @@ fi
# Each scheduler will be tested in a separate instance booted from scratch, to
# ensure that each run does not impact the others.
#
# TODO: exclude scx_layered for now, because it requires a special config
# file, otherwise its test would fail with "Error: No layer spec".
#
# Maybe in the future change scx_layered to run with a default layer spec, just
# for testing it.
#
for sched in $(find tools/sched_ext/build/bin -type f -executable | grep -v scx_layered); do
rm -f /tmp/output
(timeout --foreground --preserve-status ${GUEST_TIMEOUT} \
vng --force-9p --disable-microvm --verbose -- \
"timeout --foreground --preserve-status ${TEST_TIMEOUT} ${sched}" \
2>&1 </dev/null || true) | tee /tmp/output
sed -n -e '/\bBUG:/q1' \
-e '/\bWARNING:/q1' \
-e '/\berror\b/Iq1' \
-e '/\bstall/Iq1' \
-e '/\btimeout\b/Iq1' /tmp/output
for sched in $(find tools/sched_ext/build/bin -type f -executable); do
runtest "${sched}"
grep -v " Speculative Return Stack Overflow" /tmp/output | \
sed -n -e '/\bBUG:/q1' \
-e '/\bWARNING:/q1' \
-e '/\berror\b/Iq1' \
-e '/\bstall/Iq1' \
-e '/\btimeout\b/Iq1'
res=$?
if [ ${res} -ne 0 ]; then
echo "FAIL: ${sched}"
Expand All @@ -49,3 +60,14 @@ for sched in $(find tools/sched_ext/build/bin -type f -executable | grep -v scx_
echo "OK: ${sched}"
fi
done

# Run the selftests suite
runtest "tools/testing/selftests/sched_ext/runner"
sed -n -e '/not ok/q1' /tmp/output
res=$?
if [ ${res} -ne 0 ]; then
echo "FAIL: selftests"
echo "output: $(cat /tmp/output)"
else
echo "OK: selftests"
fi
13 changes: 11 additions & 2 deletions .github/workflows/test-kernel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
### DOWNLOAD AND INSTALL DEPENDENCIES ###

# Download dependencies packaged by Ubuntu
- run: sudo apt -y install gcc make git coreutils cmake elfutils libelf-dev libunwind-dev libzstd-dev linux-headers-generic linux-tools-common linux-tools-generic ninja-build python3-pip python3-requests qemu-kvm udev iproute2 busybox-static libvirt-clients kbd kmod file rsync zstd pahole flex bison cpio libcap-dev libelf-dev python3-dev cargo rustc
- run: sudo apt -y install bc gcc make git coreutils cmake elfutils libelf-dev libunwind-dev libzstd-dev linux-headers-generic linux-tools-common linux-tools-generic ninja-build python3-pip python3-requests qemu-kvm udev iproute2 busybox-static libvirt-clients kbd kmod file rsync zstd pahole flex bison cpio libcap-dev libelf-dev python3-dev cargo rustc gcc-multilib

# clang 17
# Use a custom llvm.sh script which includes the -y flag for
Expand All @@ -40,8 +40,17 @@ jobs:
# Build a minimal kernel (with sched-ext enabled) using virtme-ng
- run: vng -v --build --config .github/workflows/sched-ext.config

# Build the selftests suite
- run: make -j $(nproc) -C tools/testing/selftests/sched_ext

# Build the in-kernel schedulers
- run: cd tools/sched_ext && make
- run: make -j $(nproc) -C tools/sched_ext

# Setup KVM support
- run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
# Test the schedulers inside the recompile kernel
- run: .github/workflows/run-schedulers
13 changes: 13 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,16 @@ Alexei Starovoitov <[email protected]> <[email protected]>
Alexei Starovoitov <[email protected]> <[email protected]>
Alexei Starovoitov <[email protected]> <[email protected]>
Alexey Makhalov <[email protected]> <[email protected]>
Alex Elder <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Elder <[email protected]> <[email protected]>
Alex Hung <[email protected]> <[email protected]>
Alex Shi <[email protected]> <[email protected]>
Alex Shi <[email protected]> <[email protected]>
Expand Down Expand Up @@ -98,6 +108,8 @@ Ben Widawsky <[email protected]> <[email protected]>
Ben Widawsky <[email protected]> <[email protected]>
Ben Widawsky <[email protected]> <[email protected]>
Benjamin Poirier <[email protected]> <[email protected]>
Benjamin Tissoires <[email protected]> <[email protected]>
Benjamin Tissoires <[email protected]> <[email protected]>
Bjorn Andersson <[email protected]> <[email protected]>
Bjorn Andersson <[email protected]> <[email protected]>
Bjorn Andersson <[email protected]> <[email protected]>
Expand Down Expand Up @@ -500,6 +512,7 @@ Praveen BP <[email protected]>
Pradeep Kumar Chitrapu <[email protected]> <[email protected]>
Prasad Sodagudi <[email protected]> <[email protected]>
Punit Agrawal <[email protected]> <[email protected]>
Puranjay Mohan <[email protected]> <[email protected]>
Qais Yousef <[email protected]> <[email protected]>
Qais Yousef <[email protected]> <[email protected]>
Quentin Monnet <[email protected]> <[email protected]>
Expand Down
3 changes: 3 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3423,6 +3423,9 @@
arch-independent options, each of which is an
aggregation of existing arch-specific options.

Note, "mitigations" is supported if and only if the
kernel was built with CPU_MITIGATIONS=y.

off
Disable all optional CPU mitigations. This
improves system performance, but it may also
Expand Down
Loading

0 comments on commit b48afd2

Please sign in to comment.