KernelNewbies:

Linux 5.11 was released on Sun, 14 Feb 2021

Summary: This release adds supports for a new mechanism that lets software like wine handle windows syscalls in a much faster and clean manner; support for unprivileged overlayfs mounts; support for Intel SGX enclaves; support for upcoming AMD and Intel graphics hardware; faster performance and data recovery options in Btrfs; support for re-exporting via NFS an existing NFS mount; a new epoll_pwait2(2) syscall for wait timeouts with nanosecond resolution, and faster KASAN memory debugging in ARM. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Faster wine with Syscall User Dispatch

This release adds a clean an efficient mechanism to redirect syscalls to support the non-Linux syscalls of WINE by catching them at syscall entry and redirecting them to the user space emulation. This can be utilized for other purposes as well and has been designed carefully to avoid overhead for the regular fastpath.

Recommended LWN article: Emulating Windows system calls, take 2

Documentation

1.2. Unprivileged Overlayfs mounts

Overlayfs, merged in Linux 3.18, allows a directory tree (usually read-only) to be overlaid onto another, read-only directory tree, where all the modifications are done.

Use of Overlayfs was limited to privileged users. After auditing the code to make sure that all operations on underlying layers are performed with the privileges of the mounting task, this release finally allows non-privileged users to make use of Overlayfs.

1.3. Support for Intel SGX

Intel SGX is new hardware functionality that can be used by applications to populate protected regions of user code and data called enclaves. Once activated, the new hardware protects enclave code and data from outside access and modification. Enclaves provide a place to store secrets and process data with those secrets (eg, DRM software). SGX implementations have existed on desktop processors for several years. The upcoming 3rd Generation Intel Xeon Scalable Platform, code-named “Ice Lake” will also support SGX.

Recommended LWN article: SGX: when 20 patch versions aren't enough

Documentation

1.4. Support of new AMD, Intel graphics harware

As part of their policy of providing good Linux support for their hardware, both AMD and Intel have added support for new hardware: AMD has added support for a few new variants (Vangogh, Green Sardine, Dimgrey Cavefish), and Intel has provided better support for DG1.

1.5. Faster performance and better data recover in Btrfs

This release adds a few changes that should improve Btrfs performance in many different areas. First, Btrfs replaced the locking primitive used in the core b-tree implementation. A homegrown locking scheme had been used, but now it uses the standard Linux read-write semaphores; this results in much better performance for highly concurrent workloads. There are also a few changes that significantly improve the throughput/latency of dbench-like workloads.

Aditionally, this release implements new data recovery mount options for people with corrupted file systems. rescue=ignoredatacsums, which ignores faileddata checksums, rescue=ignorebadroots, which attempts to continue mounting the file system in read-only mode even if there are corrupted tree roots, and for convenience a new rescue=all option has been added, which enables 'ignorebadroots', 'ignoredatacsums' and 'nologreplay' at the same time.

1.6. NFS re-exporting support

This release makes NFS re-exporting (exporting a NFS mount via NFS) a first-class feature. This would enable the Linux in-kernel NFS server to be used as an intermediate cache for a remotely-located primary NFS server, for example, even with other NFS server implementations, like a NetApp filer, as the primary. The main interest is in allowing NFSv4.2 (particularly with pnfs) to be reexported via NFSv3.

1.7. Add epoll_pwait2(2) syscall for higher resolution waits

Add epoll_pwait2(2), an epoll_wait(2) variant with nsec resolution that replaces int timeout with struct timespec. It is equivalent otherwise. Use cases such as datacenter networking operate on timescales well below milliseconds. Shorter timeouts bounds their tail latency.

Recommended LWN article: epoll_pwait2(), close_range(), and encoded I/O

1.8. Faster memory leak debugging in ARM

The Linux kernel contains KASAN, a dynamic memory error detector that provides a fast and comprehensive solution for finding use-after-free and out-of-bounds bugs. A more performant and less memory hungry version, software tag-based KASAN, was added in Linux 5.0 for ARM 64 CPUs.

This release implements hardware tag-based KASAN for ARM 64. It relies on arm64 Memory Tagging Extension introduced in ARMv8.5 to perform memory and pointer tagging (instead of shadow memory and compiler instrumentation). While it doesn't removes all the overhead of KASAN, it is significantly faster and memory thrifty than the existing versions, which makes the discovery of memory errors easier.

Recommended LWN article: The Arm64 memory tagging extension in Linux

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Networking

8. Architectures

8.1. ARM

8.2. X86

8.3. MIPS

8.4. S390

8.5. POWERPC

8.6. RISCV

8.7. ALPHA

8.8. OPENRISC

8.9. PARISC

9. Drivers

9.1. Graphics

9.2. Power Management

9.3. Storage

9.4. Drivers in the Staging area

9.5. Networking

9.6. Audio

9.7. Tablets, touch screens, keyboards, mouses

9.8. TV tuners, webcams, video capturers

9.9. Universal Serial Bus

9.10. Serial Peripheral Interface (SPI)

9.11. Watchdog

9.12. Serial

9.13. CPU Frequency scaling

9.14. Device Voltage and Frequency Scaling

9.15. Voltage, current regulators, power capping, power supply

9.16. Real Time Clock (RTC)

9.17. Pin Controllers (pinctrl)

9.18. Multi Media Card (MMC)

9.19. Memory Technology Devices (MTD)

9.20. Industrial I/O (iio)

9.21. Multi Function Devices (MFD)

9.22. Pulse-Width Modulation (PWM)

9.23. Inter-Integrated Circuit (I2C + I3C)

9.24. Hardware monitoring (hwmon)

9.25. General Purpose I/O (gpio)

9.26. Leds

9.27. DMA engines

9.28. Cryptography hardware acceleration

9.29. PCI

9.30. Non-Transparent Bridge (NTB)

9.31. FRU Support Interface (FSI)

9.32. Clock

9.33. PHY ("physical layer" framework)

9.34. EDAC (Error Detection And Correction)

9.35. Various

10. List of Pull Requests

List of Linus merges from v5.10 to v5.11-rc1

11. Other news sites

KernelNewbies: Linux_5.11 (last edited 2021-02-17 20:32:55 by diegocalleja)