Difference between revisions of "Linux-ck"

From ArchWiki
Jump to navigation Jump to search
(remove outdated and redundant sections)
(entire troubleshooting section seems to contain outdated links and info)
Line 43: Line 43:
  
 
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).
 
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 ==
 
=== Silencing psi: task underflow message ===
 
 
New in MuQSS v0.185 has support for [https://lwn.net/Articles/763629/ PSI] which [http://ck-hack.blogspot.com/2018/12/linux-420-ck1-muqss-version-0185-for.html?showComment=1546576441759#c2919535897335602087 CK is characterizing] as "completely untested and probably broken."
 
 
In response to this, some users may notice [https://bbs.archlinux.org/viewtopic.php?pid=1824594#p1824594 psi: task underflow!] in dmesg/journalctl output.  With the release of 4.20.0-3-ck1, is compiled in but disabled by default.  Users wanting PSI enabled should boot with the following [[kernel parameter]] on their respective bootloader config: '''psi=1'''
 
 
=== 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
 
 
==== DKMS ====
 
 
Install '''virtualbox''' with the '''virtualbox-host-dkms''' package. Then setup DKMS as follows:
 
# pacman -S virtualbox virtualbox-host-dkms
 
 
=== CPUACCT missing in docker ===
 
 
In newer versions of Linux-ck ([https://aur.archlinux.org/packages/linux-ck#comment-677316 some experienced] with 4.19, 4.20 seems general), a change to the MuQSS was made that disables the {{ic|CONFIG_CGROUP_CPUACCT}} option from the kernel, which makes ''some'' usage of docker ({{ic|run}} or {{ic|build}}) to produce the following error:
 
 
{{hc|$ docker run --rm hello-world|docker: Error response from daemon: unable to find "cpuacct" in controller set: unknown.}}
 
 
This error does not seems to affect the docker daemon, just containers. This is due a change where the {{ic|CONFIG_CGROUP_CPUACCT}} kernel option is incompatible with {{ic|SCHED_MUQSS}} when the last is set to {{ic|Y}},  as seen in a [https://github.com/ckolivas/linux/commit/1e3f40f5448c4a7a4257f0908f4620b3de679472#diff-df29aead4faac0f63a7af3a16a9ebd1cR1148 recent commit] in ck's repository:
 
 
{{bc|@@ -896,6 +913,7 @@ config CGROUP_DEVICE
 
 
config CGROUP_CPUACCT
 
        bool "Simple CPU accounting controller"
 
+      depends on !SCHED_MUQSS
 
        help
 
          Provides a simple controller for monitoring the
 
          total CPU consumed by the tasks in a cgroup.
 
}}
 
 
You can check more information [https://bbs.archlinux.org/viewtopic.php?pid=1825773#p1825773 in the forums] or in [https://ck-hack.blogspot.com/2018/12/linux-420-ck1-muqss-version-0185-for.html?showComment=1547195122462#c1770603367031092645 ck's blog].
 
 
==== Fixing missed cgroups ====
 
 
To fix the ''missing cgroups'' error, update your {{Pkg|containerd}} to version 1.2.5 or above. See [https://github.com/containerd/cgroups/pull/77 this PR] for more details.
 
 
=== Downgrading ===
 
 
Users wishing to downgrade to a previous version of Linux-ck, have several options:
 
* Source archives are [http://repo-ck.com/bench.htm available] dating back to linux-ck-3.3.7-1.
 
* [http://pkgbuild.com/git/aur-mirror.git/log/linux-ck AUR.git] holds AUR git commits for Linux-ck, dating back to linux-ck-2.6.39.3-1.
 
 
=== Forum support ===
 
 
Always feel free to open a thread in the forums for support purpose. Be sure to give the thread a descriptive title to draw attention to the fact that the post relates to the Linux-ck package.
 
 
There is also an [https://bbs.archlinux.org/viewtopic.php?id=111715 official thread] for Linux-ck.
 
  
 
== See also ==
 
== See also ==

Revision as of 11:41, 20 October 2019

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 a CPU scheduler named 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

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.

More about MuQSS

See the LKML announcement posted by CK.

Check if MuQSS is enabled

This start-up message should appear in the kernel ring buffer when MuQSS in enabled:

$ dmesg | grep -i muqss
...
MuQSS CPU scheduler v0.120 by Con Kolivas.

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).

See also