11/14/2023 0 Comments Linux kernel 5.0![]() ![]() Control Group v2 enhancementsĬontrol Group or cgroup is a kernel feature that enables hierarchichal grouping of processes such that their use of system resources (memory, CPU, I/O, etc) can be controlled, monitored and limited. Optimizations to memory management code reduces TLB (translation lookaside buffer) misses. MM optimizations to reduce unnecessary cache line movements/TLB misses See this commit for documentation and a sample program. Pressure stall monitors, which allow user space to detect and respond quickly to memory pressure, have been added. That has enabled an increase in the maximum program size (for the root user) from 4096 instructions to 1,000,000. The BPF verifier has seen some optimization work that yields a 20x speedup on large programs. See this merge commit and this documentation for details. The new “devlink health” mechanism provides notifications when an interface device has problems. Whereas previously PSI only reported averages for fixed, relatively large time windows, these improvements enable user-defined and more fine-grained measurements as well as mechanisms to be notified when thresholds are reached. This view into how resource-constrained a system is can help prevent catastrophe. Higher frequency Pressure Stall Information monitoringįirst introduced in 4.20, Pressure Stall Information (PSI) tells a system administrator how much wall clock time an application spends, on average, waiting for system resources such as memory or CPU. This improvement enables watching of super bock root to be notified that any file was changed anywhere on the filesystem. See patch Improved fanotify() to efficiently detect changes on large filesystemįanotify is a mechanism for monitoring filesystem events. In 5.1, the compiler’s case-values-threshold will be raised to 20 for builds using retpolines - meaning that GCC will not create indirect jumps for statements with less than 20 branches - addressing the performance issue without the need for code changes that might well slow things down on non-retpoline systems. The resulting slowdown is evidently inspiring some developers to recode switch statements as long if-then-else sequences. The GCC compiler can use indirect jumps for switch statements those can end up using retpolines on x86 systems. Build improvements to avoid unnecessary retpolines The io_uring API has been added, providing a new (and hopefully better) way of achieving high-performance asynchronous I/O. ![]() io_uring API for high-performance async IO In benchmarks that try to allocated Transparent HugePages in deliberatly fragmented virtual memory, the number of pages scanned for migration was reduced by 65% and the free scanner was reduced by 97.5%. ![]() ![]() Memory compaction has been reworked, resulting in significant improvements in compaction success rates and CPU time required. See this commit for some information about the feature and the performance characteristics of the various levels. The Btrfs filesystem now supports the use of multiple ZSTD ( Zstandard) compression levels. Learn more about BPF and how to use it in this seven part series by Oracle developer Alan Maguire. BPF spinlock patchesīPF (Berkeley Packet Filter) spinlock patches give BPF programs increased control over concurrency. While the features below are roughly in chronological order, there is no significance to the order otherwise. So, now is as good a time as any to review developments that have occurred since 5.0. Unbreakable Enterprise Kernel 6 is based on stable kernel 5.4 and was recently made available as a developer preview. The version numbers are meaningless, which should mean that they don't even follow silly numerological rules - even if v3.0 and v4.0 happened to be at the 2M and 4M mark respectively.Last year, I covered features in Linux kernel 5.0 that we thought were worth highlighting. Except I probably won't, because I don't want to be too predictable. The most special thing that happened is purely numerology: we've passed the six million git objects mark, and that is reason enough to call the next kernel 5.0. This does not seem to be shaping up to be a particularly big release, and there seems to be nothing particularly special about it. With the removal of old architecture and other bits of tidying up, with v4.17 RC1 there were more lines of code removed than added: something described as "probably a first. You have been warned." That's not to say that Linux kernel v5.0 - or whatever it ends up being called - will not be significant.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |