My personal Linux kernel, tuned for gaming on modern hardware. Built with the latest LLVM toolchain targeting native compilation, configured with a 1000Hz tick rate, NTSYNC for low-latency synchronization, Transparent Hugepages, full preemption, sched_ext, and NOHZ_FULL tickless support. Patched with BORE scheduling, BBRv3 TCP congestion control, and various desktop-focused tweaks.
- Linux v7.1-rc2
- Config
PREEMPT_FULLsched_extTRANSPARENT_HUGEPAGE_MADVISENTSYNCNOHZ_FULLfor optional tickless- 1000 Hz tick rate
- LLVM/Clang + -O3 + ThinLTO +
-march=native
- Patches
drm:HDMI FRL (for 4k@144hz, HDMI 2.1 support for AMD GPUs)sched:BORE (Burst-Oriented Response Enhancer) schedulercompiler:LLVM Polly (polyhedral loop optimizer for better cache locality and parallelism)mm:Lazy RSS stat percpu counters (faster fork/exec for single-threaded tasks)compiler:CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE uses -O3x86:Disable Split Lock mitigationnet:Google's BBR3 for TCP congestion controltime:tick/nohz: Fix wrong NOHZ idle CPU statedrm/ttm:VRAM pressure: keep protected workloads in VRAM when GPU memory runs lowiommu:enable posted MSI by default (lower PCIe interrupt latency for GPU)sched:more aggressive idle load balancing (halved avg_idle threshold)mm:raise default max_map_count to INT_MAX (prevents game crashes from VMA exhaustion)net:increase default socket buffer size by 4xsched:rate-limitsched_yieldto once per jiffy (fixes Proton/Wine games that spam yield)mm:place shared libraries below PIE binary in address space (better code/library cache locality)mm:usemmput_asyncon process exit (avoids blocking mm teardown under memory pressure)time:reduce defaulttimer_slack_nsfrom 50µs to 50ns (tighter hrtimer coalescing window for nanosleep/select/futex; inherited by all processes from PID 1)sched/wait: do accept() in LIFO order for cache efficiencyboot:parallelize ATA and GPU initializationnet:increase TCP write buffer limit from 4MB to 16MB
Compiling the kernel takes around 15-20min on a 9950X3D with the default -j$(nproc).
makepkg -si -fFor dual-CCD asymmetric CPUs such as 9950X3D/9900X3D, configure the kernel boot args so X3D cores run tickless and offload RCU callbacks and IRQs to CCD1:
C=$(nproc); Q=$((C/4)); H=$((C/2)); echo "nohz_full=1-$((Q-1)),${H}-$((H+Q-1)) rcu_nocbs=1-$((Q-1)),${H}-$((H+Q-1)) irqaffinity=${Q}-$((H-1)),$((H+Q))-$((C-1))"
# cpu 0 can't be tickless
nohz_full=1-7,16-23 rcu_nocbs=1-7,16-23 irqaffinity=8-15,24-31For a 9950X3D2 I advise to set CCD1 cores as nohz_full and move system tasks to CCD0. Since cpu0 is the BSP it cannot be made tickless, so you might as well isolate CCD1 for gaming instead.