KernelNewbies:

Linux 4.12 [https://lkml.org/lkml/2017/7/2/164 has been released] on Sun, 2 Jul 2017.

Summary: This release includes a new BFQ I/O scheduler which provides a much better interactive experience; it also includes preliminary support for Radeon RX Vega graphic cards and support for USB Type-C connectors; improvements to the live kernel patching feature, support for Intel IMSM's Partial Parity Log which allows to close the RAID5 write hole; support for exposing OpenChannel SSDs as device blocks, and another I/O scheduler, Kybe that allows to configure a latency target for reads and writes, ,

TableOfContents()

1. Prominent features

1.1. Preliminary Radeon Vega support

This release adds preliminary support for [https://en.wikipedia.org/wiki/AMD_RX_Vega_series Radeon RX Vega] graphic cards.

Code: [https://git.kernel.org/linus/8cd3ac52963f2e99f4c21d1c9ce89531ce66c2d6 merge], [https://git.kernel.org/linus/7dae618174692f9da17a47fe82133a4b0ab9debf commit], [https://git.kernel.org/linus/ca2f1ccaf95c74b38ad510485506a8d450d8e6b4 commit], [https://git.kernel.org/linus/09062ae1bb1c4a84e382560ff5059803d263a6c8 commit]

1.2. USB Type-C support

This release adds support for [https://en.wikipedia.org/wiki/USB-C USB Type-C] connectors. USB Type-C, commonly known as simply USB-C, is a 24-pin USB connector system allowing transport of data and energy.

Code: [https://git.kernel.org/linus/fab9288428ec0fbd09adb67d3a17c51d78196f9c commit], [https://git.kernel.org/linus/f0690a25a140b853b1842fa80faf828601bb47e8 commit], [https://git.kernel.org/linus/74e656d6b0551999194b5ab1e45ff8b1e82b898e commit], [https://git.kernel.org/linus/c034a43e72dda58e4a184d71f5502ef356e04453 commit]

1.3. New BFQ I/O scheduler for a more reponsive desktop

BFQ (Budget Fair Queuing) is a new I/O scheduler. For personal systems, BFQ provides low latency for interactive applications, low latency for soft real-time applications, higher speed for code-development tasks, high throughput, and strong fairness, bandwidth and delay guarantees. For servers, besides the same benefits as above, BFQ guarantees: audio and video-streaming with zero or very low jitter and drop rate; fast retrieval of WEB pages and embedded objects; real-time recording of data in live-dumping applications (e.g., packet logging); responsiveness in local and remote access to a server. For more details and benchmarks, see the [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/block/bfq-iosched.txt Documentation] or the [http://algo.ing.unimo.it/people/paolo/disk_sched/ project site]

Recommended LWN article: [https://lwn.net/Articles/720675/ Two new block I/O schedulers for 4.12]

Code: [https://git.kernel.org/linus/aee69d78dec0ffdf82e35d57c626e80dddc314d5 commit], [https://git.kernel.org/linus/e21b7a0b988772e82e7147e1c659a5afe2ae003c commit], [https://git.kernel.org/linus/54b604567fbfa1a35a44c2ac4a35c959d277adc2 commit], [https://git.kernel.org/linus/ab0e43e9cea047873599bc8041cd6278781fd4e0 commit], [https://git.kernel.org/linus/c074170e65995706be78e8c57ed2017c638d5464 commit], [https://git.kernel.org/linus/44e44a1b329ed37a98bc41ab21fb6897d5a922ac commit], [https://git.kernel.org/linus/77b7dcead36d15d7af9159f2a5f91149c5887634 commit], [https://git.kernel.org/linus/bcd5642607ab9195e22a1617d92fb82698d44448 commit], [https://git.kernel.org/linus/cfd69712a101f528caad1529e64834e31e5dff62 commit], [https://git.kernel.org/linus/36eca894832351feed9072d0f97eb06fc9482ca4 commit], [https://git.kernel.org/linus/1de0c4cd9ea65f99910ae0b77fce2cd1a8e5de01 commit] ,[https://git.kernel.org/linus/bf2b79e7c4b312aa6e1c661fb27e0dc4dd42f2c2 commit], [https://git.kernel.org/linus/e01eff01d5c81f4dbba186299b16b08aa7316d5b commit], [https://git.kernel.org/linus/e1b2324dd065880a3200098fe3637ac171c296e6 commit], [https://git.kernel.org/linus/6fa3e8d34204d532268ddb4dc5d2a904197c972d commit]

1.4. New Kyber I/O scheduler

The Kyber I/O scheduler is a low-overhead scheduler suitable for multiqueue and other fast devices. Given target latencies for reads and synchronous writes, it will self-tune queue depths to achieve that goal, similary to blk-wbt.

Recommended LWN article: [https://lwn.net/Articles/720675/ Two new block I/O schedulers for 4.12]

Code: [https://git.kernel.org/linus/00e043936e9a1c274c29366c7ecd9e17c79418e6 commit], [https://git.kernel.org/linus/16b738f651c83a01db057e5db02ec4b830af9130 commit]

1.5. Progress in Live kernel patching

Live patching is a feature [https://kernelnewbies.org/Linux_4.0#head-9aa7c8499b42911a48c02b24f367bf2bc6db8606 merged in Linux 4.0] that allows to patch the kernel code in running systems, which in turn allows to patch security issues without rebooting.

This release adds a so-called per-task consistency model - a foundation which will eventually enable to patch those ~10% of security patches which change function or data semantics. This is the biggest remaining piece needed to make livepatch more generally useful. This code stems from the [https://lkml.kernel.org/r/20141107140458.GA21774@suse.cz design proposal] made in November 2014. It's a hybrid of kGraft and kpatch: it uses kGraft's per-task consistency and syscall barrier switching combined with kpatch's stack trace switching.

Recommended LWN article: [https://lwn.net/Articles/706327/ Topics in live kernel patching]

Code: [https://git.kernel.org/linus/d83a7cb375eec21f04c83542395d08b2f6641da2 commit], [https://git.kernel.org/linus/7c23b330011690705613a66a8239d2ca64a41d4d commit], [https://git.kernel.org/linus/3ec24776bfd09668079df7dca0c0136d80820ab4 commit]

1.6. Add support for Intel IMSM's Partial Parity Log

This release adds support for the Partial Parity Log feature found in Intel IMSM raid array. This feature is another way to close the RAID 5 Write Hole. PPL is available for md version-1 metadata and external (specifically IMSM) metadata arrays. It can be enabled using mdadm option --consistency-policy=ppl.

Documentation: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/md/raid5-ppl.txt Documentation/md/raid5-ppl.txt]

Code: [https://git.kernel.org/linus/3418d036c81dcb604b7c7c71b209d5890a8418aa commit], [https://git.kernel.org/linus/4536bf9ba2d03404655586b07f8830b6f2106242 commit], [https://git.kernel.org/linus/ba903a3ea465bd2f2bb9316054b295e79a7a518e commit], [https://git.kernel.org/linus/6358c239d88c751a9f14152a8d4ad2b69f5be48f commit], [https://git.kernel.org/linus/664aed04446c7f653d8acbe2cdf7989f28238524 commit], [https://git.kernel.org/linus/ea0213e0c7cc1c1b52badf27bd7db4f50a67baaa commit]

1.7. Expose OpenChannel SSDs as device blocks

This release introduces pblk, a host-side FTL for Open-Channel SSDs to expose them like block devices. Open-Channel SSDs are SSDs that do not include a Flash Translation Layer, support for them was included in [https://kernelnewbies.org/Linux_4.4#head-80dee68c457cfb97bfa62b68f68de022e9c3c912 Linux 4.4]. pblk is an implementation of a Flash Transaction Layer in the Linux kernel, which allows data placement decisions, and I/O scheduling to be managed by the host, enabling users to optimize the SSD for their specific workloads.

Documentation: [http://lightnvm.io/pblk-tools/ http://lightnvm.io/pblk-tools/]

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

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.12 (last edited 2017-08-10 16:55:18 by diegocalleja)