Major version increment to 5 does not mean 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.
Kernel Core:
- The CFS process scheduler on asymmetric processors like ARM works differently — it first loads the low-power and energy-efficient cores.
- With the fanotify file event tracking API, you can receive notifications about file execution events.
- A cpuset controller is integrated, which can limit groups of processes by CPU and NUMA nodes usage.
- Support for the following ARM devices has been added: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5, and many more.
- Improvements in the ARM subsystem: hot-plugging of memory, protection against Meltdown and Spectre, 52-bit memory addressing, etc.
- Support for the WBNOINVD instruction for x86-64.
Memory Subsystem:
- For the KASAN tool on ARM64 platforms, substitution of check tags with low memory consumption is available.
- Memory fragmentation has been significantly reduced (by up to 90%), resulting in better performance of the Transparent HugePage mechanism.
- The speed of mremap(2) on large memory areas has increased by up to 20 times.
- In the KSM mechanism, jhash2 has been replaced by xxhash, which has increased KSM's performance by 5 times on 64-bit systems.
- Improvements in ZRam and OOM.
Block Devices and File Systems:
- The blk-mq mechanism with a multi-level queue system has become the default for block devices. All non-mq code has been removed.
- Improvements in NVMe support, especially regarding the operation of devices over the network.
- Btrfs now fully supports swap files, as well as changing FSID without overwriting metadata.
- In F2FS, an ioctl call has been added for deferred filesystem checks via fsck.
- BinderFS has been integrated — a pseudo-FS for inter-process communication. It allows multiple Android instances to run in one environment.
- A number of improvements in CIFS: DFS cache, extended attributes, smb3.1.1 protocol.
- ZRam works more efficiently with unused swap devices, saving memory.
Security and Virtualization:
- A hash function Streebog (GOST 34.11-2012) developed by the FSB of the Russian Federation 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.
- Seccomp call processing 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 emulation 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 is included for lossless compression of video streams targeting 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 has included support for video modes for Turing TU104/TU106 family graphics cards.
- Raspberry Pi touchscreen drivers, CDTech panels, Banana Pi, DLC1010GIG, and others have been integrated.
- The HDA driver now supports the 'jack' button, LED indicators, and Tegra186 and Tegra194 devices.
- The input subsystem has learned to work with high-precision scrolling on some Microsoft and Logitech mice.
- A plethora of changes in drivers for webcams, TV tuners, USB, IIO, and more.
Network subsystem:
- In the UDP stack, support for the zero-copy mechanism for data transfer through sockets without intermediate buffering has been implemented.
- A Generic Receive Offload mechanism has also been added.
- Search performance in xfrm policies has been improved when there are many of them.
- The VLAN driver has added the ability to offload tunnels.
- A number of improvements in Infiniband and wireless network support.
Avots: linux.org.ru
