Increasing the major version number to 5 does not imply any grand changes or compatibility breaks. It simply helps our dear Linus Torvalds maintain his peace of mind. Below is a list of some changes and innovations.
Core of the kernel:
- The CFS process scheduler on asymmetric processors like ARM operates differently—initially loading less powerful and energy-efficient cores.
- Through the fanotify file event tracking API, notifications can be received for file execution openings.
- A cpuset controller has been integrated, allowing for limiting groups of processes based on CPU and NUMA node usage.
- Support has been added for the following ARM devices: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5, and many others.
- Improvements in the ARM subsystem: hotplug memory, protection from Meltdown and Spectre, 52-bit memory addressing, and more.
- Support for the WBNOINVD instruction for x86-64.
Memory subsystem:
- For the KASAN tool on ARM64 platforms, a substitution of tags with low memory consumption is available.
- Memory fragmentation has been drastically reduced (up to 90%), resulting in better operation of the Transparent HugePage mechanism.
- The performance of mremap(2) on large memory areas has increased by up to 20 times.
- In the KSM mechanism, jhash2 has been replaced with xxhash, resulting in a 5-fold performance increase on 64-bit systems.
- Improvements in ZRam and OOM.
Block devices and file systems:
- The blk-mq mechanism with a multi-level request queue system has become the standard for block devices. All non-mq code has been removed.
- Support improvements for NVMe, especially regarding the operation of networked devices.
- Full support for swap files has been implemented in Btrfs, along with FSID changes without rewriting metadata.
- An ioctl call for deferred FS checking via fsck has been added to F2FS.
- BinderFS has been integrated—a pseudo-FS for inter-process communication. It allows running multiple instances of Android in one environment.
- A series of improvements in CIFS: DFS cache, extended attributes, smb3.1.1 protocol.
- ZRam operates more efficiently with unused swap devices, saving memory.
Security and virtualization:
- The Streebog hash function (GOST 34.11-2012), developed by the FSB of Russia, has been added.
- Support for the Adiantum encryption algorithm, developed by Google for low-power devices.
- The XChaCha12, XChaCha20, and NHPoly1305 algorithms have been included.
- The processing of seccomp calls can now be moved to user space.
- For guest systems KVM support for Intel Processor Trace extensions has been implemented with minimal performance overhead.
- Improvements in the KVM/Hyper-V subsystem.
- The virtio-gpu driver now supports EDID simulation for virtual monitors.
- The virtio_blk driver has implemented a discard call.
- Security features for NV memory based on Intel DSM 1.8 specifications have been implemented.
Device drivers:
- Changes in the DRM API for full support of adaptive synchronization (part of the DisplayPort standard) and variable refresh rates (part of the HDMI standard).
- The Display Stream Compression standard has been included for lossless compression of video streams targeted at high-resolution displays.
- The AMDGPU driver now supports FreeSync 2 HDR and GPU reset for CI, VI, SOC15.
- The Intel video driver has gained support for Amber Lake chips, YCBCR 4:2:0, and YCBCR 4:4:4 formats.
- The Nouveau driver includes support for video modes for Turing TU104/TU106 family graphics cards.
- Drivers for Raspberry Pi touchscreen, CDTech panels, Banana Pi, DLC1010GIG, and others have been integrated.
- The HDA driver now supports the 'jack' button, LED indicators, Tegra186 and Tegra194 devices.
- The input subsystem has learned to work with high-precision scrolling on certain Microsoft and Logitech mice.
- A number of changes have been made to drivers for webcams, TV tuners, USB, IIO, and others.
Network subsystem:
- The UDP stack has implemented support for a zero-copy mechanism for data transmission via socket without intermediate buffering.
- A Generic Receive Offload mechanism has also been added.
- Search performance in xfrm policies has been improved with a large number of them.
- The VLAN driver has added the ability to offload tunnels.
- A number of improvements have been made in Infiniband and wireless network support.
Source: linux.org.ru
