{"id":167600,"date":"2026-05-17T16:47:27","date_gmt":"2026-05-17T13:47:27","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=167600"},"modified":"2026-05-18T07:06:05","modified_gmt":"2026-05-18T04:06:05","slug":"cachyos-kernel-manager-performance-tuning","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/cachyos-kernel-manager-performance-tuning\/","title":{"rendered":"CachyOS Kernel Manager and Performance Tuning"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">CachyOS ships its own kernel, its own optimized package repos, and a small GUI called <strong>cachyos-kernel-manager<\/strong> for swapping between kernel variants. That stack is what separates CachyOS from every other Arch derivative, and it is the layer most worth understanding if you want CachyOS to actually outperform stock Arch on the same hardware. This guide covers what the CachyOS kernel changes, when to pick BORE over EEVDF over LTS, how to install and roll back kernels safely with Limine, and the small set of system-wide tunables (x86-64-v3 repos, ZRAM, BTRFS mount options) that make the most measurable difference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The article is laptop-flavoured because that is the audience most likely to care about scheduler choice for interactive responsiveness, but everything applies equally to a desktop or VM. All commands were tested end to end on a fresh CachyOS install with linux-cachyos, KDE Plasma, BTRFS, and Limine as the bootloader. If you have not done the basics yet, walk through <a href=\"https:\/\/computingforgeeks.com\/things-to-do-after-installing-cachyos\/\">things to do after installing CachyOS<\/a> first. Real captured output is inline.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tested May 2026 on the CachyOS 260426 desktop ISO with linux-cachyos 7.0.8 (EEVDF default), KDE Plasma on Wayland, and a BTRFS root using zstd compression. Test box: 4 vCPU host CPU passthrough, 16 GB RAM. Benchmarks ran inside a Proxmox VM, so absolute numbers do not translate to bare metal, but the verification commands are the same on any laptop.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What the CachyOS kernel actually changes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Stock Arch ships <code>linux<\/code>, the vanilla upstream kernel with Arch&#8217;s default config. CachyOS replaces it with <code>linux-cachyos<\/code>, a kernel rebuilt from the same upstream tree but with three substantive differences:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A different default scheduler.<\/strong> The current default <code>linux-cachyos<\/code> uses <strong>EEVDF<\/strong> (Earliest Eligible Virtual Deadline First). EEVDF replaced CFS upstream in Linux 6.6 and is what mainline ships too; CachyOS just builds it with tuned defaults. Separate variants are available for BORE, BMQ, and other schedulers.<\/li>\n<li><strong>Performance-oriented build flags.<\/strong> The package is GCC-compiled with Thin LTO. A separate <code>linux-cachyos-lto<\/code> variant uses Clang Thin LTO with AutoFDO and Propeller profiling.<\/li>\n<li><strong>Patches that have not landed upstream yet.<\/strong> Things like the BORE scheduler patches and various small performance tweaks live in CachyOS-PKGBUILDS and ride a few weeks ahead of mainline.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That is the whole story. The shipped kernel is mainline Linux with extra patches and tuned build flags. There is no fork, no proprietary code, no out-of-tree drivers you cannot find anywhere else. Confirm exactly which kernel is running and which CachyOS scheduler features are compiled in:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname.png\" alt=\"Terminal showing uname -r returning 7.0.8-1-cachyos and CONFIG_SCHED_CLASS_EXT=y from \/proc\/config.gz on CachyOS Linux rolling\" class=\"wp-image-167591\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-verify-uname-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The kernel string ends in <code>-cachyos<\/code> for the default, <code>-cachyos-bore<\/code> for the BORE variant, <code>-cachyos-lts<\/code> for the LTS series. <code>CONFIG_SCHED_CLASS_EXT=y<\/code> means the kernel was built with sched_ext (the BPF scheduler framework) enabled, which is one of the CachyOS extras over a vanilla Arch build.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CachyOS kernel variants and when to pick which<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The CachyOS repo ships every variant of the kernel as a separate package. <code>cachyos-kernel-manager<\/code> is just a GUI on top of pacman that installs, swaps, and removes them. The list as of this writing:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Package<\/th><th>Scheduler<\/th><th>When to pick it<\/th><\/tr><\/thead><tbody>\n<tr><td><code>linux-cachyos<\/code><\/td><td>EEVDF<\/td><td>The default. General-purpose desktop and developer use.<\/td><\/tr>\n<tr><td><code>linux-cachyos-bore<\/code><\/td><td>BORE<\/td><td>Interactive workloads and gaming. Favours I\/O-bound tasks that yield CPU often.<\/td><\/tr>\n<tr><td><code>linux-cachyos-eevdf<\/code><\/td><td>EEVDF<\/td><td>Explicit EEVDF build alongside the default. Use when you want EEVDF pinned in case the default changes.<\/td><\/tr>\n<tr><td><code>linux-cachyos-bmq<\/code><\/td><td>BMQ<\/td><td>BitMap Queue scheduler. Niche; pick only if a specific workload prefers it.<\/td><\/tr>\n<tr><td><code>linux-cachyos-rt-bore<\/code><\/td><td>BORE + PREEMPT_RT<\/td><td>Real-time workloads (pro audio, robotics control loops) that need bounded latency.<\/td><\/tr>\n<tr><td><code>linux-cachyos-lts<\/code><\/td><td>EEVDF<\/td><td>Long-term support kernel. Use as the fallback \/ second kernel when chasing kernel regressions.<\/td><\/tr>\n<tr><td><code>linux-cachyos-hardened<\/code><\/td><td>EEVDF<\/td><td>Security-focused kernel with linux-hardened patches applied.<\/td><\/tr>\n<tr><td><code>linux-cachyos-deckify<\/code><\/td><td>BORE<\/td><td>Steam Deck-style tuning and gaming hardware patches.<\/td><\/tr>\n<tr><td><code>linux-cachyos-server<\/code><\/td><td>EEVDF<\/td><td>Server-tuned config; longer timeslices, different IO defaults.<\/td><\/tr>\n<tr><td><code>linux-cachyos-lto<\/code><\/td><td>EEVDF<\/td><td>Clang Thin LTO build with AutoFDO + Propeller. The most aggressively optimised variant for raw throughput.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The practical short answer for most laptop owners: stay on <code>linux-cachyos<\/code> unless you have a specific reason to move. The reason will usually be one of: gaming responsiveness (try <code>linux-cachyos-bore<\/code>), the default kernel has a regression on your hardware (move to <code>linux-cachyos-lts<\/code> until upstream catches up), or you actually need real-time scheduling (<code>linux-cachyos-rt-bore<\/code>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What BORE does that EEVDF does not<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">EEVDF is fair-by-design: tasks accumulate &#8220;lag&#8221; and the scheduler picks whoever has the earliest deadline among the eligible set. It is a clean, well-behaved scheduler that replaced CFS upstream.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">BORE (Burst-Oriented Response Enhancer) sits on top of EEVDF and adds a &#8220;burstiness&#8221; score per task. A task that voluntarily yields the CPU often (waiting on I\/O, sleeping, blocking on the keyboard) accumulates a low burst score and gets scheduled preferentially. A task that burns CPU continuously gets a higher score and is penalised. The practical effect is that interactive workloads (typing into a terminal, scrolling a browser, the foreground game thread) feel more responsive while a parallel compile or AI inference run is in the background.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">BORE exposes a handful of <code>\/proc\/sys\/kernel\/<\/code> tunables that the daring can tweak (defaults shown). Note these only exist when running a BORE kernel; on a stock <code>linux-cachyos<\/code> they will not appear in sysctl.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Sysctl<\/th><th>Default<\/th><th>Effect<\/th><\/tr><\/thead><tbody>\n<tr><td><code>kernel.sched_bore<\/code><\/td><td>1<\/td><td>Enable \/ disable BORE entirely<\/td><\/tr>\n<tr><td><code>kernel.sched_burst_penalty_offset<\/code><\/td><td>24<\/td><td>Threshold below which a task is treated as &#8220;short burst&#8221;<\/td><\/tr>\n<tr><td><code>kernel.sched_burst_penalty_scale<\/code><\/td><td>1536<\/td><td>How aggressively BORE discriminates against long-burst tasks<\/td><\/tr>\n<tr><td><code>kernel.sched_burst_smoothness<\/code><\/td><td>1<\/td><td>Smoothing factor on burst score transitions<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Leave the defaults alone unless you have a measurable workload that benefits from a change. The defaults are what the BORE author and the CachyOS team test against.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Use cachyos-kernel-manager to swap kernels safely<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>cachyos-kernel-manager<\/code> is a Qt6 GUI that wraps pacman. It lists every CachyOS kernel package available in the repo, shows which are currently installed, and exposes install \/ remove buttons. Behind the scenes it runs <code>pacman -S linux-cachyos-bore<\/code> (or similar) with polkit authentication. It does not build kernels from source. Launch it from the application menu or from a terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>cachyos-kernel-manager<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The kernel manager opens to a list of all available kernel packages with checkboxes for install:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-manager-gui.png\" alt=\"cachyos-kernel-manager Qt6 GUI showing list of CachyOS kernel packages with checkboxes for install plus version and category columns\" class=\"wp-image-167597\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-manager-gui.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-manager-gui-300x225.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-kernel-manager-gui-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The pattern that actually works on a daily-driver laptop is to install at least two kernels and keep the second one as a known-good fallback. Best pairing: the default <code>linux-cachyos<\/code> plus <code>linux-cachyos-lts<\/code>. Switch to the LTS entry from the bootloader whenever a kernel update breaks something, file an upstream bug, and switch back when the regression is fixed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can install kernels straight from the terminal too, which is faster than walking the GUI when you already know which one you want:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S linux-cachyos-bore linux-cachyos-bore-headers\nsudo pacman -S linux-cachyos-lts linux-cachyos-lts-headers<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Limine (the CachyOS default bootloader), the install hook auto-regenerates the bootloader entries and adds the new kernel to <code>\/boot\/limine.conf<\/code>. No <code>grub-mkconfig<\/code> step is needed. On the GRUB variant of the install, regenerate with <code>sudo grub-mkconfig -o \/boot\/grub\/grub.cfg<\/code> after every kernel install.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Limine boot menu with multiple kernels<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After installing a second and third kernel, the Limine menu on the next boot lists all of them under the <code>CachyOS<\/code> entry. Press a key during the 5-second countdown to stop the auto-boot, arrow up or down to pick a kernel, and press Enter:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-limine-boot-menu.png\" alt=\"Limine boot menu on CachyOS showing the default linux-cachyos plus linux-cachyos-bore, linux-cachyos-lts and a snapshots submenu with EFI fallback\" class=\"wp-image-167598\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-limine-boot-menu.png 1280w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-limine-boot-menu-300x188.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-limine-boot-menu-1024x640.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-limine-boot-menu-768x480.png 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>[+] Snapshots<\/code> submenu is the snapper integration. CachyOS ships <code>limine-snapper-sync<\/code>, which adds every BTRFS snapshot snapper takes as a bootable entry. When a pacman update breaks the system, you reboot, pick a pre-update snapshot from the Snapshots submenu, and you are back in a working state in under thirty seconds. That side of the workflow is the topic of a separate Day-2 guide on BTRFS snapshots and rollback.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Confirm the x86-64-v3 optimised repos are enabled<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS ships parallel package repos compiled for the <strong>x86-64-v3<\/strong> microarchitecture level (roughly Haswell and newer, ~2013+) and <strong>x86-64-v4<\/strong> (AVX-512 era CPUs). On supported hardware, the installer enables the v3 repo automatically. Verify with:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>\/lib\/ld-linux-x86-64.so.2 --help | grep -A2 \"supported, searched\"\ngrep -E '^\\[' \/etc\/pacman.conf\nls \/etc\/pacman.d\/cachyos-*mirrorlist<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On a v3-eligible CPU the dynamic linker and pacman repos look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"1018\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos.png\" alt=\"Terminal output showing ld-linux reporting x86-64-v3 and v2 as supported and pacman.conf containing cachyos-v3 cachyos-extra-v3 and cachyos-core-v3 repo sections\" class=\"wp-image-167592\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos-300x166.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos-1024x567.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos-768x425.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-x86-64-v3-repos-1536x850.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you see <code>[cachyos-v3]<\/code>, <code>[cachyos-extra-v3]<\/code>, and <code>[cachyos-core-v3]<\/code> in <code>pacman.conf<\/code>, the v3 repos are wired up: pacman pulls v3-compiled packages where they exist and falls back to the plain <code>[cachyos]<\/code> repo otherwise. The v4 mirrorlist file exists too but is only used if your CPU advertises AVX-512.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your CPU is v3-capable but you only see the plain <code>[cachyos]<\/code> repo, the installer missed it. Enable v3 manually:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S --noconfirm cachyos-v3-mirrorlist<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then add the v3 repo entries to <code>\/etc\/pacman.conf<\/code> above the plain cachyos repo so it wins resolution. Run <code>sudo pacman -Syu<\/code> and pacman will replace any v1-built package with its v3 sibling where one exists. The benefit varies by workload. Codec-heavy and crypto-heavy paths see the largest wins; most desktop apps see single-digit percent improvements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ZRAM is already configured<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CachyOS enables ZRAM by default via <code>systemd-zram-generator<\/code>. ZRAM is a compressed in-memory swap device; on a laptop with 8-16 GB of RAM it lets you push past memory pressure without touching the SSD. Confirm it is running:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>zramctl\nswapon --show\nsysctl vm.swappiness vm.page-cluster<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On a clean CachyOS install you should see ZRAM, swap, and the swappiness sysctl already set:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"800\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning.png\" alt=\"zramctl showing zram0 with zstd algorithm at 15.6 GB, swapon showing zram0 priority 100, and sysctl vm.swappiness 150 vm.page-cluster 0 on CachyOS\" class=\"wp-image-167593\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning-300x130.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning-1024x445.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning-768x334.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-zram-swap-tuning-1536x668.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The default config uses <code>zstd<\/code> compression and sizes ZRAM to half of RAM (15.6 G on this 16 GB test box). <code>cachyos-settings<\/code> pairs that with <code>vm.swappiness=150<\/code>, which sounds extreme but is correct for ZRAM-only swap: you want the kernel to prefer compressed RAM over evicting page cache. <code>vm.page-cluster=0<\/code> means single-page reads from swap (good for ZRAM, bad for spinning disks).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can keep ZRAM as the only swap on a laptop with at least 8 GB of RAM. If you also want suspend-to-disk, add a small swap file or swap partition for hibernation only. ZRAM cannot resume from suspend-to-disk because the compressed pages live in volatile memory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">BTRFS mount options that matter<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Calamares &#8220;Erase disk \u2192 btrfs&#8221; path lays out subvolumes that snapper and grub-btrfs\/limine-snapper-sync expect, with sensible mount options preset in <code>\/etc\/fstab<\/code>. Look at the actual mount lines:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>findmnt -t btrfs\ngrep btrfs \/etc\/fstab<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The mounted subvolume layout on a fresh BTRFS install looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"1018\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount.png\" alt=\"findmnt -t btrfs showing CachyOS subvolume layout: @, @home, @root, @srv, @cache, @tmp, @log all mounted with rw,noatime,compress=zstd:3,ssd,discard=async,space_cache=v2\" class=\"wp-image-167594\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount-300x166.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount-1024x567.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount-768x425.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-btrfs-subvolumes-mount-1536x850.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The defaults are <code>noatime<\/code>, <code>compress=zstd:3<\/code>, <code>space_cache=v2<\/code>, <code>discard=async<\/code>, <code>ssd<\/code>, and per-subvolume <code>subvol=<\/code> entries. That is already the production-ready mount set for an SSD-backed laptop, and it gives snapper the @-prefixed subvolume layout it expects. Notes on each option:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>noatime<\/code> avoids writing an updated atime on every file read, a measurable IO reduction.<\/li>\n<li><code>compress=zstd:3<\/code> picks zstd level 3, the sweet spot between compression ratio and CPU cost. Bump to <code>compress=zstd:6<\/code> if you have CPU headroom and want smaller writes.<\/li>\n<li><code>space_cache=v2<\/code> is the modern free-space tree, much faster on large filesystems than the legacy v1 cache.<\/li>\n<li><code>discard=async<\/code> trims freed blocks in the background instead of synchronously, the right default on every modern SSD.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">cachyos-settings is the secret sauce<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every CachyOS install pulls in the <code>cachyos-settings<\/code> package automatically. It applies a curated set of sysctls, udev rules, modprobe defaults, and systemd tweaks that mainline Arch users would otherwise wire up by hand. Inspect what it actually installs:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>pacman -Qi cachyos-settings | head -6\npacman -Ql cachyos-settings | grep -E '\\.(conf|rules|sh)$'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The package metadata and the slice of config files it installs:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"1064\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files.png\" alt=\"pacman -Ql cachyos-settings output showing config files in \/etc\/security\/limits.d, \/usr\/lib\/modprobe.d, \/usr\/lib\/sysctl.d, \/usr\/lib\/systemd that the package installs on CachyOS\" class=\"wp-image-167595\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files-300x173.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files-1024x592.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files-768x444.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-settings-files-1536x888.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The headline values applied by <code>cachyos-settings<\/code> are worth knowing because they are what differentiates a CachyOS box from a stock Arch box on the same hardware:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sysctl:<\/strong> <code>vm.swappiness=150<\/code> (tuned for ZRAM), <code>vm.page-cluster=0<\/code>, adjusted <code>dirty_bytes<\/code> and <code>dirty_background_bytes<\/code> for SSD writeback, NMI watchdog disabled.<\/li>\n<li><strong>I\/O scheduler udev rules:<\/strong> <code>bfq<\/code> for spinning HDDs, <code>mq-deadline<\/code> for SATA SSDs, <code>none<\/code> for NVMe. CachyOS applies these via udev; vanilla Arch leaves the kernel default everywhere.<\/li>\n<li><strong>ZRAM:<\/strong> <code>zstd<\/code> compression with <code>swap-priority=100<\/code>, half-of-RAM size by default.<\/li>\n<li><strong>Systemd:<\/strong> <code>DefaultTimeoutStartSec=15s<\/code> and <code>DefaultTimeoutStopSec=10s<\/code> to keep boot and shutdown snappy; journal size capped to 50 MB.<\/li>\n<li><strong>GPU:<\/strong> forces <code>amdgpu<\/code> for compatible AMD GPUs (blacklists the legacy <code>radeon<\/code> driver); applies NVIDIA module params including <code>NVreg_UsePageAttributeTable=1<\/code> for CPU performance and <code>NVreg_DynamicPowerManagement=0x02<\/code> for laptop NVIDIA GPUs.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">None of this is mandatory. If you ever want stock Arch behaviour back, <code>sudo pacman -Rns cachyos-settings<\/code> removes the lot. But the defaults are good and there is rarely a reason to undo them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A small honest benchmark on the default kernel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To put numbers on the performance discussion, I installed <code>stress-ng<\/code>, <code>p7zip<\/code>, and <code>rt-tests<\/code> (for hackbench) and ran three quick benchmarks on the default <code>linux-cachyos<\/code> 7.0.8 kernel:<\/p>\n\n\n\n<pre class=\"wp-block-code code\"><code>sudo pacman -S --noconfirm stress-ng p7zip rt-tests\nstress-ng --matrix 0 --metrics-brief --timeout 30s\n7z b -mmt4\nhackbench -l 1000 -g 16<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The captured output from those three commands on the default kernel:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1840\" height=\"1018\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel.png\" alt=\"Terminal output from stress-ng matrix benchmark showing 14304 bogo-ops per second, 7z benchmark total 23810 MIPS, and hackbench completing in 4.956 seconds on linux-cachyos default kernel\" class=\"wp-image-167596\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel.png 1840w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel-300x166.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel-1024x567.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel-768x425.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2026\/05\/wm-cachyos-benchmark-default-kernel-1536x850.png 1536w\" sizes=\"auto, (max-width: 1840px) 100vw, 1840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Real numbers from this test box (4 vCPU Intel Core i7-6700 passthrough, 16 GB RAM, BTRFS root, default kernel):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Benchmark<\/th><th>linux-cachyos 7.0.8 (EEVDF)<\/th><\/tr><\/thead><tbody>\n<tr><td>stress-ng matrix (bogo-ops\/s, real time)<\/td><td>14,304<\/td><\/tr>\n<tr><td>7z b total MIPS (Tot Avr)<\/td><td>23,810<\/td><\/tr>\n<tr><td>hackbench (seconds, lower is better)<\/td><td>4.956<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n\n<p class=\"wp-block-paragraph\">The honest caveat: these ran inside a VM, so the absolute numbers do not translate cleanly to bare metal. What the numbers <em>do<\/em> prove is that <code>stress-ng<\/code>, <code>7z b<\/code>, and <code>hackbench<\/code> are the right cheap tools to reach for if you want to see whether a kernel swap on <em>your<\/em> hardware moves the needle. Pick one workload that mirrors what you actually do, capture three runs on the current kernel, install the candidate kernel, reboot from the Limine menu, and capture three runs there. If the means do not move by at least 5%, the scheduler choice is not your bottleneck.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to do day one, day thirty, and day ninety<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Day one is simple. Stay on the default <code>linux-cachyos<\/code> kernel and let it run. Confirm ZRAM and the BTRFS mount options look right. Do nothing else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Day thirty, install <code>linux-cachyos-lts<\/code> as a second kernel and confirm it shows up in the Limine menu. This is the cheap insurance that pays for itself the first time a kernel update breaks suspend on your specific laptop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Day ninety, if you game on this laptop, try <code>linux-cachyos-bore<\/code> for a week and see whether the input feel actually changes. If yes, keep it. If you cannot tell the difference, switch back. The scheduler that &#8220;feels right&#8221; is the right one; trust your fingers over the benchmark table above.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the laptop-specific things this kernel post does not cover (battery life, suspend-then-hibernate, thermal monitoring), the next article in this series digs into the power management stack: TLP versus auto-cpufreq versus power-profiles-daemon, the suspend\/hibernate combo on BTRFS, and how to actually measure what is draining the battery.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CachyOS ships its own kernel, its own optimized package repos, and a small GUI called cachyos-kernel-manager for swapping between kernel variants. That stack is what separates CachyOS from every other Arch derivative, and it is the layer most worth understanding if you want CachyOS to actually outperform stock Arch on the same hardware. This guide &#8230; <a title=\"CachyOS Kernel Manager and Performance Tuning\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/cachyos-kernel-manager-performance-tuning\/\" aria-label=\"Read more about CachyOS Kernel Manager and Performance Tuning\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":167599,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,712,47,50],"tags":[228,781,714,282],"cfg_series":[39846],"class_list":["post-167600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arch-linux","category-desktop","category-linux","category-linux-tutorials","tag-arch-linux","tag-desktop","tag-desktop-environment","tag-linux","cfg_series-cachyos-laptops"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=167600"}],"version-history":[{"count":7,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167600\/revisions"}],"predecessor-version":[{"id":167634,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/167600\/revisions\/167634"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/167599"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=167600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=167600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=167600"},{"taxonomy":"cfg_series","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/cfg_series?post=167600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}