Performance Improvements Using Custom Kernel Schedulers

Article Summary:
The Linux Kernel can be modified to use custom job scheduling strategies that can enhance job performance. This article describes how to do this on Fedora GNU/Linux. It describes work that is currently under consideration for incorporation in the mainline linux kernel.

Article Description:

Installation steps on Fedora Rawhide (39), tested on x86_64 with 8 cores and 16Gb of ram:

sudo dnf update
# Get dependencies
sudo dnf install fedpkg fedora-packager rpmdevtools ncurses-devel pesign \
  grubby rust cargo qt5-qtbase-devel libXi-devel gcc-c++ clang llvm lldb \
  bison flex git-core coreutils make elfutils zlib-devel binutils-devel \
  numactl-devel gettext ncurses-devel libcap-ng-devel libcap-devel \
  openssl-devel nss-tools rust cargo libelf-devel elfutils-devel bc dwarves wget \
  llvm-devel lldb-devel clang-devel
# get and build static libclang which is not available in Fedora repositories
wget https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-15.0.7.tar.gz
tar -xf llvmorg-15.0.7.tar.gz
cd llvm-project-llvmorg-15.0.7/clang
mkdir build
cd build
cmake .. -DLIBCLANG_BUILD_STATIC=ON
make
sudo make install
cd ../../..
git clone https://github.com/htejun/sched_ext --depth=1
cd sched_ext
cp -v /boot/config-$(uname -r) .config
echo "CONFIG_SCHED_CLASS_EXT=y" >> .config
make -j16 all
# take a break
sudo make -j16 modules_install
sudo make -j16 install
sudo reboot
# login again
cd sched_ext/tools/sched_ext
make -j16
# Raise RLIMIT_MEMLOCK to avoid using sudo
sudo ./scx_example_simple

For more on Building custom kernels see Building a Custom Kernel :: Fedora Docs
Describe how to run some scheduling tests using sched_ext/sched-ext.rst at sched_ext-v3 · htejun/sched_ext · GitHub as a reference

https://pagure.io/fedora-magazine-newsroom/issue/184

It sounds good to me. +1.

Ticket assigned and flags set.