Ubuntu has been offering a “low-latency” kernel for use in industrial embedded systems and other environments with strict latency requirements. Ahead of the release of Ubuntu 24.04 LTS, Canonical is exploring the possibility of implementing incremental optimizations to their kernel design. Ubuntu 24.04 LTS is anticipated to offer significant performance improvements… Ubuntu Linux is looking promising. The latest consideration is to apply minimal changes to the kernel design used in Ubuntu. Ubuntu’s low-latency kernel often modifies the Kconfig utilized in kernel development, which is now being regarded as the default. A bug report on Launchpad clearly explains this:
Ubuntu provides a “lowlatency” kernel: a kernel optimized for applications with “low latency” requirements. Currently, this kernel does not include the UBUNTU SAUCE patches to further improve the “low latency” demands, but the only difference lies in a small section of .config options. Virtually all options can now be altered at boot or during runtime, except for CONFIG_HZ (250 in generic kernel vs 1000 in lowlatency kernel). Maintaining a separate kernel for a single upgrade process appears to be a significant endeavor and involves a substantial investment of engineering hours, build time, testing time, and resources. Not to mention the risk of an inferior kernel falling behind and becoming incompatible with the latest kernel. Support for lower settings in the standard kernel was previously being considered but was not completed due to the potential performance degradation in high CPU usage (increasing HZ from 250 to 1000 may cause more jitter at higher workloads.). The outcomes of the original proposal led to the kernel being reclassified as a lowlatency kernel as opposed to a desktop-oriented kernel, resulting in additional latency issues (LP: #2023007).
Some of the changes in the low-latency kernel include making CONFIG_NO_HZ_FULL static, moving RCU callbacks to KThread using CONFIG_RCU_NOCB_CPU, utilizing batch RCU calls with CONFIG_RCU_LAZY, and setting CONFIG_HZ=10000 responsence10000H. The concern is more significant in the deployment of HPC/server workloads. However, this presents an opportunity to begin benchmarking the new Ubuntu kernel offerings from Phoronix in the near future…
The question of using low-latency settings on Ubuntu’s standard kernel build is still under consideration, and those interested in obtaining the latest version can do so via the Launchpad bug. It will be intriguing to see their decision and any additional changes that will be included in Ubuntu 24.04 LTS.