
kdump support for AMD Secure Memory Encryption (SME) It is also now possible to use poll() on a pidfd to get notification when the associated process dies. The pidfd_open() system call has been added it allows a process to obtain a pidfd for another, existing process.

A tunable has been provided to allow system administrators to control the maximum period for which the CPU can be paused. Thus, applications can employ short waits while using less power and with reduced impact on the performance of other hypertreads.
#LINUX KERNEL 5.0 CODE#
The x86 umonitor, umwait, and tpause instructions are available in user-space code they make it possible to efficiently execute small delays without the need for busy loops on Intel “Tremont” chips. See also this documentation Power efficient userspace waiting better support for rootless, unprivileged containers.Version 2 or cgroup v2 is a re-work of control group, under development since version 4 of the kernel, that intends to remove inconsistencies and enable better resource isolation and better management for containers. Version 1 of this feature has been in the kernel for a long time and is a crucial element of the implementation of containers in Linux. 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.
#LINUX KERNEL 5.0 PATCH#
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
#LINUX KERNEL 5.0 FREE#
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.
#LINUX KERNEL 5.0 HOW TO#
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. Last year, I covered features in Linux kernel 5.0 that we thought were worth highlighting.
