Benchmarking Ubuntu's Low-Latency Kernel & Liquorix Post-Meltdown
A new Phoronix Premium member was hypothesizing in the forums whether Ubuntu's low-latency kernel would be performing better in the wake of the Kernel Page Table Isolation (KPTI) support in the kernel for fending off the Meltdown CPU vulnerability. With always aiming to deliver on test requests by premium members, I ran some benchmarks of the Ubuntu low-latency vs. generic kernels and I also tossed in the Liquorix kernel for benchmarking too.
The Ubuntu low-latency kernel is designed for, well, low-latency workloads like audio processing/recording. The lowlatency kernel compared to the generic Linux x86_64 kernel enables IRQ_FORCED_THREADING_DEFAULT, disables TREE_RCU in favor of PREEMPT_RCU, disables OPTPROBES, enables UNINLINE_SPIN_UNLOCK while disables the INLINE_*_UNLOCK tunables, enables PREEMPT support, changes to 1000Hz tick from 250Hz, and enables LATENCYTOP support.
The Liquorix kernel continues to be a bit more unique and among its alterations compared to a generic kernel is Zen interactive tuning, making use of the MuQSS process scheduler, hard kernel preemption, BFQ I/O scheduler by default, network optimizations, and more as outlined at Liquorix.net. Liquorix also defaults to CPUFreq on Intel CPUs and uses the ondemand governor rather than the other tested kernels defaulting to P_State powersave.
For these tests were benchmarks of 4.13.0-25-generic (the current default Ubuntu 17.10 kernel with KPTI patched), 4.14.13-041413-generic as the latest upstream stable kernel from the Ubuntu Mainline Kernel PPA, 4.14.13-041413-lowlatency as the equivalent low-latency Ubuntu kernel, and then 4.14.0-13.1-liquorix as the latest Liquorix kernel via its Launchpad PPA. All of these kernels had KPTI protection present and enabled, none of them currently have the (currently out-of-tree) Retpoline support.
Here's all the details from the same Intel Core i9 7980XE system used during testing with its 16 cores / 32 threads and 2.6GHz base frequency with 4.2GHz turbo / 4.4GHz TBM3. A Radeon RX 580 was the graphics card in use for some of the GPU tests while a Corsair Force MP500 NVMe 120GB SSD was the storage device throughout all this testing from the Ubuntu 17.10 x86_64 operating system. For those new here, the CPU was run at stock frequencies: the reported frequency difference just comes down to a reporting difference between the P-State and CPUfreq scaling drivers. All of these benchmarks were automated via the Phoronix Test Suite.