bieszczaders/kernel-cachyos-addons

Project ID: 79220

Description

Announcement 2024/06/16: Sched-ext schedulers support has been added to the stable branch kernels. Instructions can be found below.

Userspace KSM helper daemon.

The daemon goes through the list of userspace tasks (once per 5 seconds) and hints them to apply MADV_MERGEABLE to anonymous mappings for ksmd kthread to merge memory pages with the same content. Only long-living tasks are hinted (those that were launched more than 10 seconds ago).

This requires pmadv_ksm() syscall, which is available in pf-kernel.

Configuration

The daemon requires zero configuration.

Distribution and Contribution

Distributed under terms and conditions of GNU GPL v3 (only).

Developers:

CachyOS branding

The special version for CachyOS also includes uksmdstats .

Contributors:

Installation Instructions

FEDORA WORKSTATION

sudo dnf copr enable bieszczaders/kernel-cachyos-addons

INSTALL REQUIRED PACKAGES

sudo dnf install libcap-ng libcap-ng-devel procps-ng procps-ng-devel

INSTALL UKSMD

sudo dnf install uksmd

ENABLE SERVICE

sudo systemctl enable --now uksmd.service

CHECKING THE CORRECT OPERATION OF THE UKSMD

uksmdstats

FEDORA SILVERBLUE

cd /etc/yum.repos.d/

sudo wget https://copr.fedorainfracloud.org/coprs/bieszczaders/kernel-cachyos-addons/repo/fedora-$(rpm -E %fedora)/bieszczaders-kernel-cachyos-addons-fedora-$(rpm -E %fedora).repo

INSTALL REQUIRED PACKAGES

sudo rpm-ostree install libcap-ng-devel procps-ng-devel

INSTALL UKSMD

sudo rpm-ostree install uksmd

sudo systemctl reboot

ENABLE SERVICE

sudo systemctl enable --now uksmd.service

CHECKING THE CORRECT OPERATION OF THE UKSMD

uksmdstats

Sched-ext schedulers

The stable branch kernels have support for sched-ext schedulers. In order to use them, you need to install the package, which contains the schedulers using the following instructions:

In order to install the package, run the following command:

FEDORA WORKSTATION

sudo dnf install scx-scheds

FEDORA SILVERBLUE

sudo rpm-ostree install scx-scheds

On Silverblue version 39 or 40 you will also have to upgrade the libbpf package to the latest version from our repo:

sudo rpm-ostree override replace --experimental --from repo=copr:copr.fedorainfracloud.org:bieszczaders:kernel-cachyos-addons libbpf

If you have previously run the above command and want to upgrade to Silverblue 41 or 42, you will need to reset the override of libbpf before the upgrade:

rpm-ostree override reset libbpf

In order to run a scheduler, you can run the executable for the specific scheduler, you want. For example scx_bpfland:

sudo scx_bpfland

If you want to use the systemd service, you can enable and run it, and it will also start, when the system boots:

sudo systemctl enable --now scx.service

The default scheduler is scx_bpfland, but you can change it in the configuration file, which is located under /etc/default/scx

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
EPEL 10 x86_64 (24)* EPEL 10 (13 downloads)
EPEL 9 x86_64 (113)* EPEL 9 (79 downloads)
Fedora 39 x86_64 (4755)* Fedora 39 (2065 downloads)
Fedora 40 x86_64 (17788)* Fedora 40 (5589 downloads)
Fedora 41 x86_64 (3172)* Fedora 41 (1043 downloads)
Fedora rawhide x86_64 (852)* Fedora rawhide (190 downloads)

* Total number of downloaded packages.

External Repository List

The following repositories are accessible during builds