KernelNewbies:

Linux 5.1 has not been released.

Summary: TBD

1. Coolest features

1.1. High-performance asynchronous I/O with io_uring

Linux has had an asynchronous I/O interface for a long time. However, that interface has historically suffered from a large number of shortcomings. First of all, it does not support buffered I/O (ie. read(2)/write(2)), only synchronous (O_DIRECT) I/O, which relegated it to a to a subset of a subset of applications. Second, even in those cases asynchronous IO was some times not really asynchronous or fast. Third, the API was very difficult to use.

A new asynchronous interface, io_uring, has been created and merged in the release, with the purpose of solving those issues and finally provide high performance asynchronous I/O for Linux. io_uring supports both synchronous and asynchronous I/O. It supports async polled IO as well, and it allows for future use cases. For more details, read [[http://kernel.dk/io_uring.pdf|this document] (PDF) that explains the reasons for the existence of io_uring, inner workings of it, and the user visible interface.

Aditionally, there's a userspace library (liburing) that provides basic functionality for applications that don't need or want to care about how to fiddle with low level details of the kernel interface. It has helpers to allow applications to easily set up an io_uring instance, and submit/complete IO through it without knowing about the intricacies of the rings, and will continue to grow support helper functions and features as time progresses.

Document (PDF) explaining the reasons for the existence of io_uring, inner workings of it, and the user visible interface: http://kernel.dk/io_uring.pdf

GIT liburing repository: http://git.kernel.dk/cgit/liburing/

Recommended LWN article: Ringing in a new asynchronous I/O API

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing and perf

7. Security

8. Networking

9. Architectures

10. Drivers

10.1. Graphics

10.2. Storage

10.3. Drivers in the Staging area

10.4. Networking

10.5. Audio

10.6. Tablets, touch screens, keyboards, mouses

10.7. TV tuners, webcams, video capturers

10.8. Universal Serial Bus

10.9. Serial Peripheral Interface (SPI)

10.10. Watchdog

10.11. Serial

10.12. ACPI, EFI, cpufreq, thermal, Power Management

10.13. Real Time Clock (RTC)

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

10.15. Pin Controllers (pinctrl)

10.16. Multi Media Card (MMC)

10.17. Memory Technology Devices (MTD)

10.18. Industrial I/O (iio)

10.19. Multi Function Devices (MFD)

10.20. Pulse-Width Modulation (PWM)

10.21. Inter-Integrated Circuit (I2C)

10.22. Hardware monitoring (hwmon)

10.23. General Purpose I/O (gpio)

10.24. DMA engines

10.25. Hardware Random Number Generator (hwrng)

10.26. Cryptography hardware acceleration

10.27. PCI

10.28. Clock

10.29. EDAC (Error Detection And Correction)

10.30. PHY ("physical layer" framework)

10.31. Various

11. List of merges

12. Other news sites

KernelNewbies: Linux_5.1 (last edited 2019-05-01 18:26:36 by diegocalleja)