Lista para version 5.17

Linux 5.17 was released

Summary: Among other changes this release includes support for recursive id-mapped mounts; CO-RE support that makes compiled BPF programs more portable; a new P-state driver for modern AMD CPUs; the random number generator switched to BLAKE2s and got much faster; a new Real-Time Linux Analysis tool; the fscache networking caching backend was rewritten; new fanotify flag to replace some inotify patterns; support for giving names to anonymous memory mappings. As always, there are many other features, new drivers, improvements and fixes.

Support recursive id-mapped mounts

Linux 5.12 added support for id-mapped mounts

BPF CO-RE support and other improvements

The nature of BPF programs makes hard for them to be portable: The position of a member in a data structure can change depending from version to version and even on the same kernel depending on the compiler options. This requires compiling BPF programs in the target computer. In order to make BPF programs more portable, a few features are required; some have already been merged, like BTF

Recommended article: BPF CO-RE reference guide

This release also adds the `bpf_loop` helper, which helps to move loop logic of BPF programs into the kernel and thereby guarantee that the loop will always terminate

Recommended article: A different approach to BPF loops

New P-State driver for modern AMD cpus

This release includes a new AMD P-State driver. AMD P-State is the AMD CPU performance scaling driver that introduces a new CPU frequency control mechanism on AMD Zen based CPU series in Linux kernel. The new mechanism is based on Collaborative Processor Performance Control (CPPC) which is finer grain frequency management than legacy ACPI hardware P-States. Current AMD CPU platforms are using the ACPI P-states driver to manage CPU frequency and clocks with switching only in three P-states. AMD P-State leverages the Linux kernel governors such as schedutil, ondemand, etc. to manage the performance hints which are provided by CPPC hardware functionality. AMD P-State is supported on recent AMD Zen base CPU series include some of Zen 2 and Zen 3 processors.

Random number generator improvements

This release switches the entropy extractor in the RNG from SHA-1 to BLAKE2s. This change improves the backtracking security from 80 bits to 128 bits. Some additional changes have also drastically improved performance.

Recommended post: Random number generator enhancements for Linux 5.17 and 5.18

Rewrite of the networking caching backend for networking file systems

Linux networking file systems (e.g. NFS) can optionally use a networking cache layer called fscache and cachefiles. This layer has been rewritten in this release, significantly simplifying the code compared to what's upstream, removing the complex operation scheduling and object state machine in favour of something much smaller and simpler

New Real-Time Linux Analysis (RTLA) tool

As part of the efforts to get PREEMPT_RT into mainline, this release includes a Real-Time Linux Analysis (RTLA) tool. rtla is a meta-tool that includes a set of commands that aims to analyze the real-time properties of Linux. But instead of testing Linux as a black box, rtla leverages kernel tracing capabilities to provide precise information about the properties and root causes of unexpected results, making it easier for users and developers to collect performance and trace data, and helping fine-tune their systems/algorithms.

Recommended blog: And now Linux has a Real-Time Linux Analysis (RTLA) tool!

New fanotify FAN_RENAME flag

This release adds a {{{FAN_RENAME}}} event to the fanotify interfaces to report extra info records about new and old parent+name details. This new event was designed as a replacement for the "inotify way" of joining the MOVED_FROM/MOVED_TO events using a cookie

Support giving names to anonymous memory

Anonymous memory (not backed by a file, e.g. malloc) is, as the name says, anonymous, and it's not easy to debug anonymous memory usage coming from various system components. This release allows to give a name to anonymous memory mappings. It adds a field to {{{/proc/pid/maps}}} and {{{/proc/pid/smaps}}} to show a userspace-provided name for anonymous vmas. The names of named anonymous vmas are shown as [anon:]. Userspace can set the name for a region of memory by calling {{{prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name);}}}.

Recommended LWN article: Not-so-anonymous virtual memory areas

Mitigate straight-line speculation attacks

A new attack for CPUs has been found, called "Straight-line speculation"; this release adds some mitigations for it.

Recommended LWN article: Blocking straight-line speculation — eventually