In early August, Linus Torvalds presented a new version of the Linux kernel. According to a long tradition, the release of the largest open source project itself happens quite routinely, the creator writes an e-mail to colleagues in the workshop with a brief summary of the new stable version of the kernel.
A feature of the 5.8 kernel was the record number of changes over the entire existence of the project. There was only one major release of the Linux 4.9 kernel, but that was artificially bloated due to the new greybus subsystem, while 5.8 did incorporate more changes in many different directions. Let's see what is so useful and interesting in Linux 5.8, and at the same time 5.8.1, mainly for ordinary users and workstations.
The 64 MiB patch contains the work of 1991 developers, including 304 new ones. Community efforts added 904K and removed 553K lines of code. If you look at the companies, then among the most active there are familiar names.
- Intel;
- Huawei Technologies;
- Habana Labs;
- Red Hat;
- Google;
- Linaro;
- IBM;
- AMD;
- Mellanox;
- SUSE;
Graphics
The lion's share of the Linux kernel codebase is occupied by drivers, so it is not at all surprising that a significant part of the changes and release updates are devoted to them.
Adreno 405/640/650 GPU driver support
Thanks to the MSM (Freedreno) open driver update, support for Qualcomm Adreno 405, 640 and 650 GPUs has been added. These mobile GPUs can be seen on some of the latest SoCs (system on a chip) such as Snapdragon 855+ and Snapdragon 865. These chips can be found in smartphones Samsung Galaxy S10 / S20, OnePlus and many other gadgets.
At the same time, within the framework of the open APIs OpenGL and Vulkan, the Adreno drivers continue to develop, respectively with Freedreno Gallium3D and TURNIP. New changes will be included in Mesa 20.2-devel.
Numerous improvements to amdgpu drivers
AMD went out of its way to improve the quality of graphics drivers in Linux 5.8. Along with increased performance, the ability to use encrypted video memory buffers (Trusted Memory Zone) has been implemented.
AMD Radeon Trusted Memory Zone is designed to protect selected pages from being read by the CPU and other non-GPU clients and to prevent writes to TMZ protected pages.
Additionally, FP16 pixel format support has been added to the driver and extensive work has been completed to provide peer-to-peer DMA buffer sharing between devices (p2p DMA-BUF) without support for system memory pages.
File systems
Upcoming updates to the controversial Btrfs, FAT, exFAT and others.
Miscellaneous Btrfs enhancements
OpenSUSE and SUSE Linux are one of the few that use Btrfs as their primary filesystem. Unsurprisingly, SUSE has released a number of patches for this file system. As a result, Btrfs has improved I / O read handling.
- Direct I / O code has been ported to iomap interfaces;
- now when deleting a nested volume fails due to lack of space, the file system does not go into read-only mode;
- elimination of various defects and code cleaning.
Compression using the LZO-RLE algorithm in F2FS
A notable new addition to the Flash Friendly File System in the new Linux kernel is the LZO-RLE compression format. LZO Run-Length Encoding aims at the same compression rates as the standard LZO algorithm, but with higher performance. This became possible after the LZO-RLE implementation was pushed into the kernel last year by ARM.
Support for verifying the exFAT boot area
Samsung has introduced exFAT improvements for the Linux 5.8 kernel, and the new driver version contains a number of fixes and optimizations. In particular, the code was cleaned, logging was improved, and the record caching function was optimized. Also, the company's engineers have added a new functionality - checking the boot area for exFAT.
Improving I / O Performance SMB v3 / CIFS
A new parameter nodelete has been defined, with which the client can run regular checks on the server, but it is forbidden to delete files and folders. SMB v3 patches include significant performance improvements for large I / O when using multichannel, as well as DFS fixes.
Improved FAT Eager Loading of Items
Read-ahead for FAT records in the previous version was very simple, but had some drawbacks that made it inefficient in some environments.
Thanks to the mechanism for updating the read-ahead window to full exhaustion and the customizable bdi-> ra_pages, we have achieved significant performance improvements. The test was performed on a slow 2TB USB drive, and the result was a reduction in the test time from 383 to 51 seconds.
DAX support for Ext4 and XFS
DAX, or Direct Access, is designed to directly access the file system bypassing the page cache. Bypassing page caching in DAX mode means eliminating an extra read / write copy to the storage device. This in turn allows the storage device to be mapped to user space directly and more efficiently.
These DAX code enhancements from Intel allow direct access mode to be enabled for each inode, rather than just enabling or disabling for the entire file system. Also, using the statx () system call, you can query the state of direct access to a specific file from user space.
Network subsystem
The TCP / IP stack of the Linux kernel occupies a special place in the overall picture, in view of the significant complexity of the architecture and the huge possibilities for use in a wide variety of devices. The network infrastructure more than others ensures the dominance of Linux OS on servers and continues to evolve by leaps and bounds.
- Netfilter, the nftables module provides dynamic device updates for stream tables;
- * MRP, added support for Media Redundancy Protocol - IEC 62439-2 networking standard. The protocol allows to provide resilience to network failures by combining several Ethernet switches into a ring, while being faster than STP.
- bluetooth, new drivers for Realtek RTL8761B, Intel Typhoon Peak and Qualcomm QCA6390;
- lx5/mlx5e, Mellanox , 10, 40 100 . mlx5 mlx5e TLS, IPsec, MPLS ;
- rnbd, RNBD RDMA RTRS. , - .
Wi-Fi
- ath10k - VHT160 VHT80+80. Qualcomm Atheros IEEE 802.11ac Wifi 5(802.11ac).
- The iwlwifi driver now supports ACPI DSM (device specific method) for new Intel chips.
Ipv6 Updates
- Ipv6 stack got MPLS support;
- Added IPv6 encapsulation for ESP over UDP and TCP transport;
- RFC 6069 support has been implemented . The standard describes the TCP Long Connectivity Disruptions algorithm, which provides the ability to make TCP transport more resilient to long-term communication failures.
Safety
This includes fixes related to Intel security holes such as Specter, SELinux, blocking kernel modules with execution and write bits, a random number generator, etc.
Specter fixes
It is clear that Intel will not overfulfill its plan to address all the consequences of the Specter vulnerability in its chipsets anytime soon.
We are talking about several urgent fixes for the Linux kernel to handle speculative execution of x86 / x86_64 instructions. This happened after a security engineer from Google discovered the vulnerability, and the fact that one of the previous fixes, as a side effect, affected AMD processors.
Indirect Branch Prediction Barrier (IBPB) - protection against attacks of the target branch buffer for the second variant of Specter, will be forcibly disabled in Linux. The condition is scenarios where STIBP is not available or Indirect Restricted Branch Specification (IBRS) is available.
Chips and chipsets
There were many changes in Linux 5.8 for the ARM architecture.
Initial boot support for Power 10 processors
Power 10 is an upcoming processor from IBM and the OpenPOWER Foundation, expected to go on sale in 2021 and will be manufactured using a 7nm process. According to preliminary data, the new chip offers significant improvements over the existing Power 9 microarchitecture.
In addition to basic boot support for the Power 10 architecture, the Linux 5.8 kernel also supports the Power 10 prefixed instruction set.
Support for new ARM SoCs
In line with the progress of the Linux kernel subsystem for Android, the following have been added to the list of supported devices:
- Realtek RTD1195 as Arm Cortex A7 based solution;
- Realtek RTD1395;
- Realtek RTD1619;
- Renesas RZ / G1H platform;
- Budget 64-bit Rockchips RK 3326 SoC along with Odroid-GO Advance game console;
- Smartlabs SML-5442TW TV box based on AMLogic S905D;
- ODROID-C4 based on AMLogic S905X3;
- TV-box Beelink GT-King Pro based on AMLogic S922XH;
- Baseboard Management Contrioller based on Aspeed ast 2500 on Facebook x86 Yosemite V2 and YADRO OpenPower P9 Nicole ;
- Olimex A20-OLinuXino-LIME-eMMC SBC;
- Check Point L-50 router;
- Elm / Hana Chromebooks based on Mediatek MT8173;
- Samsung Galaxy S2 smartphone based on Samsung Exynos 4210;
- Qualcomm SDM660 / SDM630 platform and Xiaomi Redmi Note 7 smartphone;
- Xnano X5 TV box based on Realtek RTD1295;
New AMD Energy driver
The new and long-awaited AMD Energy driver for monitoring energy sensors on Zen / Zen 2 processors. This allows you to get energy reports on each socket / core on AMD Zen / Zen2 processors.
Thunderbolt / USB4 interface on Intel Tiger Lake processors
With just 28 lines of code in this patch , Thunderbolt / USB4 support for Tiger Lake chips is largely due to Ice Lake re-use.
The Thunderbolt interface can also run on ARM architecture using a Thunderbolt PCIe expansion card. There are currently no ARM SoC devices available.
Stable Linux 5.8.1 release
The Linux 5.8.1 minor release is a minor update that changes a total of 40 files with 548 inserts and 186 deletions. It mainly contains bug fixes for various drivers:
- GPIO, max77620;
- LEDs;
- SCSI;
- MTD;
- PCI, tegra;
- USB;
- sound;
- video;
- Updates for the ARM64 architecture;
- PowerPC architecture updates.
Which kernel is most useful?
Always upon the release of a new stable Linux kernel version with many useful updates, it may be itching to immediately download the archive from kernel.org , tweak the settings from menuconfig, or xconfig, compile and boot from the newly made image. Still, you shouldn't rush and here's why.
Stable branch maintainer Greg Kroah-Hartman has compiled a small rating of stable branches. This is what it looks like.
- A stable and up-to-date kernel for your Linux distribution.
- Latest stable release.
- Latest LTS (Long Term Support) release;
- Earlier LTS release that is still supported.
In the first place on the criterion of expediency is the Linux kernel, compiled specifically for your distribution. It contains all the necessary patches and special settings. In addition, the developers of the distribution do a lot of work on backporting bug fixes, and sometimes new functions to the kernel code, and all this in a quixotic desire not to change the major version number, despite the presence of many thousands of changes.
With these considerations in mind, it makes sense to wait until the new kernel is available for your distribution. For Debian Linux and RHEL, as well as Android devices, it may be years before a new kernel is in production. However, there are tons of distributions for workstations and general users for which a new kernel becomes available within a few weeks.
New distributions Ubuntu Linux 20.10 (Groovy Gorilla) will ship with Linux 5.8 kernel in October 2020.
Used materials
- Linux Kernel 5.8 "The Biggest Release of All Time" is Finally Available Now
- Kernelnewbies, Linux 5.8
- Linux 5.8 Kernel Features Include New Intel / AMD Capabilities, Security Improvements, Optimizations
- Linux 5.8 kernel release
- What Stable Kernel Should I Use?