General package details

Linux-ckAUR is a package available both in AUR and in the unofficial repo-ck repository that allows users to run a kernel and headers setup patched with Con Kolivas' ck patchset[1], including MuQSS (Multiple Queue Skiplist Scheduler, pronounced mux) which replaces Brain Fuck Scheduler (BFS), his previous work. Many Arch Linux users choose this kernel for its excellent desktop interactivity and responsiveness under any load situation.

Ck patchset is designed for desktop/laptop use but not for servers. It provides low latency environment and works well for 16 CPUs or fewer.

Release cycle

Linux-ck roughly follows the release cycle of the official ARCH kernel but not only. The following are requirements for a new package release:

CK patchset compatible with the current kernel version

corresponding ARCH kernel must be in existence otherwise it will break other packages i.e. nvidia. See git.archlinux.org for the official linux package

Package defaults

There are three modifications to the config files:

The options that the CK patchset enable/disable.

The tickrate is set to 100 Hz (CK's recommendation).

The extra CPU types optionally available to compilation thanks to the GCC patch.

All other options are set to the ARCH defaults outlined in the main kernel's config files. Of course users are free to edit them.

The linux-ckAUR package contains an option to switch on the nconfig config editor (see the section below).

Long-Term Support (LTS) CK releases

In addition to the linux-ckAUR package, there are LTS kernel releases patched with the above patchsets as well and with the previously mentioned modifications:

linux-lts-ckAUR - The current Arch Linux LTS kernel patched with the CK patchset

Note: This package is maintained by vishwin, thus pre-compiled versions will not be present in the unofficial ck repo.

Installation options

Note: As with any additional kernel, users need to manually update their boot loader's configuration file in order to make it aware of the new kernel image.

Use pre-compiled packages

If user prefers to spend no time to compile on their own, the unofficial repo maintained by graysky is available to the community. For details, see: Repo-ck.

How to enable the BFQ I/O Scheduler

Note: Do not confuse MuQSS (Multiple Queue Skiplist Scheduler) with BFQ (Budget Fair Queueing). MuQSS is a CPU scheduler and is enabled by default whereas BFQ is an I/O scheduler and must explicitly be enabled in order to use it.

Budget Fair Queueing is a disk scheduler which allows each process/thread to be assigned a portion of the disk throughput. Its creator shares the results of many benchmarks (results and video) which show the latency performance improvement.

Due to CK's patchset defaults, BFQ is built into linux-ck but the above-mentioned scheduler must be enabled manually. User has several options to do that.

Enable BFQ for all devices

If compiling from the AUR, simply set the BFQ flag to "y" in the PKGBUILD prior to building

_BFQ_enable_="y"

Users of repo-ck or those who have not modified the PKGBUILD prior to compile the package can append elevator=bfq to the kernel parameters.

Check if MuQSS is enabled

MuQSS patched kernels and systemd

It is a common mistake to think that MuQSS does not support cgroups. It does but not all the cgroup features (e.g. CPU limiting will not work).

Troubleshooting

Running VirtualBox with Linux-ck

VirtualBox works just fine with custom kernels such as Linux-ck without the need to keep any of the official ARCH kernel headers package on the system.

Do not forget to add users to the vboxusers group:

# gpasswd -a USERNAME vboxusers

Use the unofficial repo (recommended if Linux-ck is installed from Repo-ck)

Note: As of 17-Oct-2012, Repo-ck users can enjoy these modules as pre-compiled packages in the repo itself. If you build Linux-ck from AUR you can not use the repo as all packages in the repo are matched groups.