Linux kernel 5.9 release.

 It's only been two months since the Linux kernel 5. 8 has been called the "greatest" kernel release, "and Torvalds has already published the newly invented release, this time version 5.


According to the reliable information of correspondent Michael Larabel, the kernel code contains 20.49 million lines, 3.58 million lines of comments and 3.72 million blank lines. The abundance of files with source code has reached 59 thousand. But ok, these are all numerical characteristics. What's new in the core? Lay out and see.

Hardware

For the RISC-V architecture, the creators added the help of kcov -, a debugfs interface for the sake of parsing the sputtering of the kernel verse, a sign of the well-organized kmemleak memory leak detection, stack protection, notices of transition and tickess operations.
For ARM and ARM64, the schedutil processor frequency throttling mechanism is enabled by default. To change the frequency of the chip, materials from the task scheduler are used, so that schedutil naturally rotates to the cpufreq drivers. In general, the frequencies are adjusted to the current load.
For Intel cards, they added support for chips based on the Rocket Lake microarchitecture and the initial support for Intel Xe DG1 breakout cards.
The amdgpu driver has added the initial GPU support AMD Navi 21 (Navy Flounder) and Navi 22 (Sienna Cichlid). In addition, today consume the help of UVD / VCE forcing video encoding and decoding engines for GPU Southern Islands (Radeon HD 7000). At this point, the AMD GPU driver is the most portly driver in the kernel with 2.71 million lines of code.
In the Nouveau driver, the creators added help for frame-by-frame testing of integrity around CRC support.
Added help from a large number of boards, gadgets and platforms starting Pine64 PinePhone v1. 2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (used in Sony Xperia 10, 10 Plus, XA2, XA2 Plus and XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, five freshly baked shroud based on NXP i. MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ / G2H.


Virtualization and harmlessness

For architectures like xtensa and csky, the help of limiting entire calls through the seccomp subsystems is attached.
When building the Clang kernel, there was a possibility of the option (CONFIG_INIT_STACK_ALL_ZERO) of self-initialization with a fresh value of all variables that are secured on the stack (when building, -ftrivial-auto-var-init = zero is specified).
The AP_CHECKPOINT_RESTORE capability-flag appeared, some allows passing the path to the matinees functions and restoring the state of processes without transferring additional privileges.
In GCC 11, consume all the capabilities required by the Kernel Concurrency Sanitizer (KCSAN) tool, designed to dynamically disclose race conditions within the kernel. Today this toolkit can be utilized with kernels that are concentrated in the GCC.
Eliminated programs to support 32-bit guest systems operating in paravirtualization mode near the Xen hypervisor board. Users should go for 64-bit kernels.

Paramnesia and whole services

The creators have tightened their protection through the use of GPL interlayers to link proprietary drivers with kernel components exported solely for the sake of modules under the GPL license. We have written in more detail about this here.
There was the help of the kcompactd mechanism for preemptive packing of memory pages in low-priority mode, some allows to increase the number of huge memory pages that are intelligible to the kernel. It is thanks to this that it turned out in 70-80 to simultaneously reduce the delays in the allocation of large memory pages after comparing with the packaging mechanism, some were utilized earlier.
Added help for compressing kernel manners using the Zstandard (zstd) method.
For x86 systems, the help of the FSGSBASE processor unit is attached, which makes it possible to declare and change the contents of the FS / GS registers from the user's place.
The allow_writes meteorological parameter appeared, some allows you to prohibit changes to the MSR-registers of the processor from the user space and to localize the path to the contents of the provided registers with read operations. True, there is happily no prohibition of writing after the default, but in the near future the creators will switch the path to "read-only" mode after the default.
The io_uring asynchronous I / O interface has added the perfect help for asynchronous buffered read actions that do not require kernel threads.
Modification of energy consumption in the core is provided today by remote devices, and not so much CPU.
The gamma algorithm for prioritizing threads within the kernel has been updated. The reborn flavors allow rational consistency across virtually all kernel subsystems when prioritizing for realistic timing problems.
The sysctl sched_uclamp_util_min_rt_default has been added to control the parameters of CPU frequency generation for realistic slow tasks.
Added fresh FAN_REPORT_NAME and FAN_REPORT_DIR_FID flags to the fanotify engine. They allow you to broadcast notifications about the parent name and the miraculous FID in the event of incidents of creating, pulling or moving directory ingredients not combined with object directories.
An additional significant upgrade is the sale of a freshly baked slab memory controller. As a result, it succeeded in shortening the memory used for the slab for 30-45%, optimizing the overall memory use by the kernel and reducing memory fragmentation.


Plowing with files and attritor system

A rescue mount function for Btrfs file fixing emerged. It makes it possible to standardize the path to all other settings for the sake of recovery. Self-optimization of performance was deceived, the possibility of using alternative images of audit sums, wonderful through CRC32c, was added.
Added the possibility of inline encryption (Inline Encryption) in the ext4 and F2FS file systems. This function helps to activate the encryption mechanisms integrated into the drive controller.
XFS adds inode flush in fully asynchronous mode. Moves around the execution of the memory clearing action are not blocked. Finally, they decided on a quota topic that did not allow respectfully following warnings about exceeding the compliant limit and restrictions for the number of inodes.
Ext4 includes a look-ahead load of block allocation "bitmaps". Self-optimization together with the recognition limitation allows to shorten the mounting time of infinitely large partitions.
The SCSI subsystem also features inline encryption based on integrated hardware encryption drugs.
For md / raid5 added meteorological parameter / sys / block / md1 / md / stripe_size for the sake of the STRIPE block size option.

Net

Netfilter introduces pre-routing rejection of packets.
Added the ability to audit configuration change events in nftables.
For nftables, the netlink API also adds support for anonymous chains, which are named dynamically by the kernel.
BPF now supports iterators for traversing, filtering, and modifying the elements of associative arrays (maps) without copying data into user space.
The new type of BPF programs BPF_PROG_TYPE_SK_LOOKUP is launched when the kernel searches for a socket for an incoming connection.
Added support for PRP (Parallel Redundancy Protocol). It allows Ethernet-based failover to be implemented transparently to applications in the event of a failure of any network component.
There are new possibilities for MPTCP (MultiPath TCP). First of all, this is an extension of the TCP protocol for organizing the operation of a TCP connection with the delivery of packets in parallel along several routes through different network interfaces that are tied to different IP addresses.


According to statistics, the new version contains 16074 fixes from 2011 developers. The total size of the patch is 62 MB. Changed 14,548 files, added 782,155 lines of code, removed 314,792 lines. Approximately 45% of the changes are related to drivers, 15% to code updates for hardware architectures, 13% to networking, 3% to file systems, and another 3% to internal kernel subsystems.