(Warning, some parts of this document still need work)


1. Prominent features

1.1. IO scheduling framework for the multiqueue block layer

The Linux block layer is well know to have different IO schedulers (deadline, cfq, noop, etc) and being able to switch between them on the fly. In Linux 3.13, the block layer [ added] a new multiqueue design that performs better with modern hardware (eg. SSD, NVM). However, the multiqueue block layer didn't have support for different IO schedulers. This release adds a IO scheduling framework for the multiqueue block layer, and a port of the deadline scheduler (more schedulers will be added in the future)

Code: [ merge], [ commit]

1.2. More scalable swapping for SSDs

Modern fast storage devices such as SSDs allow to use swap as a performance enhancement technique, but the swapping implementation was designed for rotating disks. This release improves the scalability of the swap implementation.

Recommended LWN article: [ Making swapping scalable]

Code: [ commit], [ commit], [ commit], [ commit], [ commit], [ commit], [ commit], [ commit], [ commit]

1.3. Journaled RAID5 support to close the write hole

Based in work [ started] in Linux 4.4, this release adds journaling support to RAID4/5/6 in the MD layer (not to be confused with btrfs RAID). With a journal device configured (typically NVRAM or SSD), the "RAID5 write hole" should be closed - a crash during degraded operations cannot result in data corruption.

Recommended LWN article: [ A journal for MD/RAID5]

Blog entry: [ Improving software RAID with a write-ahead log]

Code: [ commit]

1.4. statx(2), a modern stat(2) alternative

Due to several shortcomings in the stat(2) system call (like not being y2038 ready or not playing well with networking filesystems), a new system call has been worked through the years, with the final result being statx(2), a new system call that has been added in this release.

Recommended LWN article: [ statx() v3]

Code: [ commit]

1.5. New perf ftrace tool

A new tool has been added to the perf toolkit: perf ftrace. This tool intends to be a simple front-end for the already existing [ ftrace]. In this release, it only supports single thread tracing and just reads trace_pipe in text and then write it to stdout.

Code: [ commit], [ commit], [ commit]

1.6. Support for OPAL drives

The [ Opal Storage Specification] is a set of specifications for features of data storage devices (such as disk drives) that enhance their security. For example, it defines a way of encrypting the stored data so that an unauthorized person who gains possession of the device cannot see the data. That is, it is a specification for self-encrypting drives.

This release adds Linux support for Opal nvme enabled controllers. It enables users to setup/unlock/lock locking ranges for SED devices using the Opal protocol.

Code: [ commit], [ commit]

1.7. Support for the SMC-R protocol (RFC7609)

This release includes the initial part of the implementation of the "Shared Memory Communications-RDMA" (SMC-R) protocol as defined in [ RFC7609]. SMC-R is an IBM protocol that provides RDMA capabilities over RoCE transparently for applications exploiting TCP sockets. While SMC-R does not aim to replace TCP, it taps a wealth of existing data center TCP socket applications to become more efficient without the need for rewriting them. A new socket protocol family PF_SMC is introduced. There are no changes required to applications using the sockets API for TCP stream sockets other than the specification of the new socket family AF_SMC. Unmodified applications can be used by means of a dynamic preload shared library.

SMC-R uses RDMA over Converged Ethernet (RoCE) to save CPU consumption. SMC-R inherits TCP qualities such as reliable connections, host-based firewall packet filtering (on connection establishment) and unmodified application of communication encryption such as TLS (transport layer security) or SSL (secure sockets layer). Since original TCP is used to establish SMC-R connections, load balancers and packet inspection based on TCP/IP connection establishment continue to work for SMC-R.

RFC: [ RFC7609]

Code: [ merge]

1.8. Persistent scrollback buffers for all VGA consoles

Not an important feature, specially for tmux/screen users, but this release adds optional support for scrollback history not being flushed when switching between consoles (this breaks tools like clear_console that rely on flushing the scrollback history by switching back and forth between consoles which is why this feature is disabled by default. Use the escape sequence \e[3J instead for flushing the buffer)

Code: [ commit], [ commit]

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing and perf tool

7. Virtualization

8. Cryptography

9. Security

10. Networking

11. Architectures

12. Drivers

12.1. Graphics

12.2. Storage

12.3. Drivers in the Staging area

12.4. Networking

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus

12.9. Serial Peripheral Interface (SPI)

12.10. Watchdog

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

12.12. Real Time Clock (RTC)

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

12.14. Pin Controllers (pinctrl)

12.15. Multi Media Card (MMC)

12.16. Memory Technology Devices (MTD)

12.17. Industrial I/O (iio)

12.18. Multi Function Devices (MFD)

12.19. Pulse-Width Modulation (PWM)

12.20. Inter-Integrated Circuit (I2C)

12.21. Hardware monitoring (hwmon)

12.22. General Purpose I/O (gpio)

12.23. Leds

12.24. DMA engines

12.25. Cryptography hardware acceleration

12.26. PCI

12.27. Clock

12.28. Various

13. List of merges

14. Other news sites

KernelNewbies: Linux_4.11 (last edited 2017-04-23 19:35:42 by diegocalleja)