KernelNewbies:

Linux 4.13 [https://lkml.org/lkml/2017/9/3/155 has been released] on Sun, 3 Sep 2017.

Summary: This release adds support in Ext4 for very large number of directory entries, support in Ext4 for extended attributes up to 64k, improvements in asynchronous I/O, improved error handling in background writes, improved error handling in the block layer, kernel TLS acceleration, and many other improvements.

1. Prominent features

1.1. Asynchronous I/O improvements

The asynchronous I/O implementation in Linux has some deficiencies, one of them is that it unexpectedly blocks in some situations. This release adds a way for asynchronous I/O to return errors instead of blocking.

Recommended LWN article: [https://lwn.net/Articles/724198/ Toward non-blocking asynchronous I/O]

Code: [https://git.kernel.org/linus/fdd2f5b7de2afaa931e5f7bad7bcda35d1f1b479 commit], [https://git.kernel.org/linus/7fc9e4722435cd8459182c4975f48934f2bb1274 commit], [https://git.kernel.org/linus/9830f4be159b29399d107bffb99e0132bc5aedd4 commit], [https://git.kernel.org/linus/b745fafaf70c0a98a2e1e7ac8cb14542889ceb0e commit], [https://git.kernel.org/linus/6be96d3ad34a124450028dabba43f07fe1d0c86d commit], [https://git.kernel.org/linus/a38d1243704f501a4c42de1db1062ff6eba83453 commit], [https://git.kernel.org/linus/03a07c92a9ed9938d828ca7f1d11b8bc63a7bb89 commit], [https://git.kernel.org/linus/728fbc0e10b7f3ce2ee043b32e3453fd5201c055 commit], [https://git.kernel.org/linus/29a5d29ec181ebdc98a26cedbd76ce9870248892 commit], [https://git.kernel.org/linus/edf064e7c6fec3646b06c944a8e35d1a3de5c2c3 commit]

1.2. Ext4 support for a larger number of directory entries

This release adds "largedir", which allows ext4 directories to support over 2 billion directory entries (assuming ~64 byte file names; in practice, users will run into practical performance limits first). This feature adds a "incompatible feature" flag.

Code: [https://git.kernel.org/linus/e08ac99fa2a25626f573cfa377ef3ddedf2cfe8f commit]

1.3. Ext4 support for bigger extended attribute values

This release adds support for extended attribute values up to 64k. It also implements a deduplication feature so that if multiple files have the same xattr value (for example, Windows ACL's stored by Samba), only one copy will be stored on disk for encoding and caching efficiency. This feature adds a "incompatible feature" flag.

Code: [https://git.kernel.org/linus/e50e5129f384ae282adebfb561189cdb19b81cee commit], [https://git.kernel.org/linus/33d201e0277b2d496f66b621f63693ced2da4198 commit], [https://git.kernel.org/linus/0de5983d354adbf1c9fa57eca8b5dd8155132fb1 commit], [https://git.kernel.org/linus/1b917ed8ae0d4ce2ee3d6c56ac6748cd1cd92d4b commit], [https://git.kernel.org/linus/bd3b963b273e247e13979f98812a6e4979b5c1e4 commit], [https://git.kernel.org/linus/9e1ba00161a6f3bec8d4e7912025cbf889878e59 commit], [https://git.kernel.org/linus/ddfa17e4adc4bd19c32216aaa6250dc38b0579df commit], [https://git.kernel.org/linus/1e7d359d710e84b996bd034f4ecc7c721e445603 commit], [https://git.kernel.org/linus/0eefb10758e696616f19a84d8c5f15b9ffc0dccd commit], [https://git.kernel.org/linus/bab79b04999ccbbf59f1693d0783cd6ae27e4278 commit], [https://git.kernel.org/linus/909666933210eb145bc93426ce07f66bf3d1f798 commit], [https://git.kernel.org/linus/990461dd85d57875accc798919e6fe42ab7e294d commit], [https://git.kernel.org/linus/0bd454c04f02e7bb101d8ff510b54826eda4a5f0 commit], [https://git.kernel.org/linus/9bb21cedda7cd69789e1f93d7d918f5ca48ba165 commit], [https://git.kernel.org/linus/f6109100ba8692c677cfdc88af1887a43263e63a commit], [https://git.kernel.org/linus/7cec191894e4e2200d942415c3ebccb146214d26 commit], [https://git.kernel.org/linus/b3155298910c64a312620309f320d26e9461eb19 commit], [https://git.kernel.org/linus/b347e2bcd18eba7ed44659d12e4a39a9b5bdc873 commit], [https://git.kernel.org/linus/65d3000520c50f3c160403a210a7504d789eafca commit], [https://git.kernel.org/linus/c1a5d5f6ab21eb7e6ff8cb99489d9001cf2a2850 commit], [https://git.kernel.org/linus/0421a189bc8cdefa18a34aee962ac0558679b944 commit], [https://git.kernel.org/linus/b6d9029df083c0a9ce1d4eda1480105e635e0d61 commit], [https://git.kernel.org/linus/c07dfcb45877fbc6798fa042bab3c4b85378efd4 commit], [https://git.kernel.org/linus/47387409ee2e09db6d0e79a026a02073dc56bb8c commit], [https://git.kernel.org/linus/02749a4c20827649859bf7e2435f1b238c24f935 commit], [https://git.kernel.org/linus/30a7eb970c3aae6f1b74b2edea896fdca1cbea38 commit], [https://git.kernel.org/linus/dec214d00e0d78a08b947d7dccdfdb84407a9f4d commit], [https://git.kernel.org/linus/7a9ca53aea10ad4677a0f347ad7639c304b80194 commit], [https://git.kernel.org/linus/9c6e7853c531c7cecca8c257bde767d089e5c880 commit], [https://git.kernel.org/linus/daf8328172dffabb4a6b5e1970d6e9628669f51c commit], [https://git.kernel.org/linus/b9fc761ea2d82e910e92f83d01bbbbe1f5e99bfc commit], [https://git.kernel.org/linus/cdb7ee4c632759075866bb8da5fb16b764e66ded commit]

1.4. Kernel TLS acceleration

As a way to microoptimize TLS traffic, Facebook created an in-kernel TLS acceleration that slightly accelerates the performance of protocols such as https. Only symmetric crypto is done in the kernel, keys are passed by userspace after the handshake is complete.

Recommended LWN article: [https://lwn.net/Articles/666509/ TLS in the kernel]

Code: [https://git.kernel.org/linus/3c4d7559159bfe1e3b94df3a657b2cda3a34e218 commit], [https://git.kernel.org/linus/99c195fb4eea405160ade58f74f62aed19b1822c commit]

1.5. Improved block layer and background writes error handling

Error handling in some parts of the Linux I/O stack is not good as it could be. For example, when the background write process fails, only the first task to call fsync will see the error and any subsequent task calling fsync on a file will get back 0 (unless another writeback error occurs in the interim). This release adds a new way to handle the errors during background writes, making possible to reliable report errors on fsync. This release also adds an improved error handling in the block layer so that upper parts of the storage stack may get a more detailed view of I/O problems and react accordingly.

Recommended LWN Article: [https://lwn.net/Articles/724307/ Improved block-layer error handling]

Code: writeback error handling [https://git.kernel.org/linus/0f41074a65757b46acbdd4293f0de8a70b147406 commit], [https://git.kernel.org/linus/d945b59db8449ab8323995391c6a63525b3666f6 commit], [https://git.kernel.org/linus/dac257f7419c732be3e491bbbb568a82df60208a commit], [https://git.kernel.org/linus/87354e5de04fe727227ff619af164202adcfa4d4 commit], [https://git.kernel.org/linus/76341cabbdad65c10a4162e9dfa82a6342afc02f commit], [https://git.kernel.org/linus/cbeaf9510a8631e9bb0077a95fd8b0db0b3be200 commit], [https://git.kernel.org/linus/5e8fcc1a0ffa0fb794b3c0efa2c3c7612a771c36 commit], [https://git.kernel.org/linus/37e51a7640c275999ea0c35410c42e6d896ff7fa commit], [https://git.kernel.org/linus/84cbadadc6eafc4798513773a2c8fce37dcd2fb8 commit], [https://git.kernel.org/linus/5660e13d2fd6af1903d4b0b98020af95ca2d638a commit], [https://git.kernel.org/linus/8ed1e46aaf1bec6a12f4c89637f2c3ef4c70f18e commit], [https://git.kernel.org/linus/acbf3c3452c3729829fdb0e5a52fed3cce556eb2 commit], [https://git.kernel.org/linus/819ec6b91d5ba1ca313066a306461774eff6b567 commit], [https://git.kernel.org/linus/372cf243ea9a36d88ff67ae44f4512f64a6bca81 commit], [https://git.kernel.org/linus/383aa543c2f46f245d652c0e5c77390f07ece657 commit], [https://git.kernel.org/linus/6acec592c6bc9a4c3136e46430e14767b07f9f1a commit], [https://git.kernel.org/linus/1b180274f5bfa0b8b05f7e55d9962f77f387be9c commit], [https://git.kernel.org/linus/333427a505be1e10d8da13427dc0c33ec1976b99 commit]; block layer: [https://git.kernel.org/linus/2a842acab109f40f0d7d10b38e9ca88390628996 commit], [https://git.kernel.org/linus/4e4cbee93d56137ebff722be022cae5f70ef84fb commit]

1.6. CIFS defaults to SMB3.0

Due to recent publicity about security vulnerabilities in the much older CIFS dialect, move the default dialect to the widely accepted (and quite secure) SMB3.0 dialect from the old default of the CIFS dialect. Both Microsoft and CERT now strongly recommend not using the older CIFS dialect (SMB Security Best Practices "recommends disabling SMBv1"). SMB3 is both secure and widely available: in Windows 8 and later, Samba and Macs. Users can still choose to explicitly mount with the less secure dialect (for old servers) by choosing "vers=1.0" on the cifs mount

Code: [https://git.kernel.org/linus/eef914a9eb5eb83e60eb498315a491cd1edc13a1 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. Serial

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

12.13. Real Time Clock (RTC)

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

12.15. Pin Controllers (pinctrl)

12.16. Multi Media Card (MMC)

12.17. Memory Technology Devices (MTD)

12.18. Industrial I/O (iio)

12.19. Multi Function Devices (MFD)

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. Non-Transparent Bridge (NTB)

12.28. Clock

12.29. Thunderbolt

12.30. Various

13. List of merges

14. Other news sites

KernelNewbies: Linux_4.13 (last edited 2017-11-11 18:56:10 by diegocalleja)