|
|
Subscribe / Log in / New account

4.13 Merge window, part 1

By Jonathan Corbet
July 10, 2017
As of this writing, just over 7,600 non-merge changesets have been pulled into the mainline repository for the 4.13 kernel release — and the patch rate does not look like it will be slowing down anytime soon. It will be another busy development cycle but, as has often been the case recently, many of the changes are internal cleanups that will not be visible to most users. That said, there are a number of interesting new features in this release.

Some of the most prominent user-visible changes include:

  • Support for non-blocking buffered I/O operations has been added at the block level. This, in turn, will help to improve asynchronous I/O support when used with buffered I/O.

  • The virtual filesystem and block layers have gained support for "lifetime hints"; these hints can be set on an open file using the fcntl() system call. The legal values are RWH_WRITE_LIFE_SHORT, for data that is not expected to stay around for a while, through to RWH_WRITE_LIFE_EXTREME for data that is expected to last forever. The idea is that the storage device can use this information to optimally place the data; thus far, only the NVMe driver actually makes use of this information.

  • The perf tool has a new --smi-cost option to measure the cost of system-management interrupts.

  • The s390 architecture now supports five-level page tables. That means it can now support up to 16EB of RAM, which should be enough for a year or two.

  • The next-interrupt prediction patches have been merged, hopefully bringing better power-management decisions with them.

  • While the conversion of the kernel's documentation to reStructured Text is not complete, an important milestone was reached for 4.13: all of the old DocBook template files have been converted, and support for the DocBook toolchain has been removed.

  • Ubuntu has been carrying a long list of enhancements to the AppArmor security module out-of-tree for some time. In 4.13, the core "domain labeling" code has been merged into the mainline. There is still quite a bit of AppArmor code yet to be upstreamed but, with the core code in place, it should be possible to consider that code in future merge windows.

  • The structure randomization plugin is now part of the build system. It can be used to randomize the layout of the fields in structures at build time, hopefully adding some security to the system.

  • The kernel now generates and assigns a unique ID number for each BPF program and map; these IDs can be used to obtain file descriptors for those objects in user space. This commit contains a test program that demonstrates this feature's use.

  • There is a new BPF program type, BPF_PROG_TYPE_SOCK_OPS, which can be invoked at various points in a socket's lifecycle to tweak a number of connection parameters. Naturally, the developers didn't want to spoil the fun by documenting this feature, but they did let some details slip in this commit message.

  • The tcp_sack, tcp_window_scaling, and tcp_timestamps sysctl knobs are now maintained separately for each network namespace.

  • A kernel-based TLS implementation has been merged, enabling better performance for protocols like HTTPS.

  • The new SO_PEERGROUPS command for getsockopt() will return a list of all groups that the socket peer is a member of.

  • Zoned block devices have different rules to writing to different parts of the device. For example, one zone may only allow writes to consecutive blocks. The dm-zoned device-mapper module will make a zoned block device look like a normal block device, hiding the zoned device's inherent write constraints in the process. Some information can be found in Documentation/device-mapper/dm-zoned.txt.

  • The first step in a long-term plan to improve the swapping of transparent huge pages has been merged. In current kernels, huge pages are split into small pages as nearly the first step in swapping them out. In 4.13, that splitting will be delayed until after swap space has been allocated and the swap-cache accounting done. That reduces lock contention and, it is claimed, leads to a 15% performance improvement. The plan is to further delay the split in the future until huge pages can be directly written to and read from the swap device.

  • New hardware support includes:

    • Audio: Everest Semi ES8316 codecs, Rockchip pulse density modulation interface controllers, STMicroelectronics STM32 digital audio interfaces, STMicroelectronics STM32 S/PDIF receivers, and ZTE ZX AUD96P22 codecs.

    • Industrial I/O: Texas Instruments ADC084S021, ADC108S102 and ADC128S102 analog-to-digital converters (ADCs).

    • Media: STMicroelectronics STM32 digital camera memory interfaces, STMicroelectronics STM32 HDMI CEC interfaces, Maxim integrated MAX2175 tuners, Renesas digital radio interfaces, OmniVision OV5640 and OV13858 sensors, Freescale i.MX5/6 image processing units, Freescale MX5/6 camera sensor interfaces, and Dongwoon DW9714 voice coil motor interfaces.

    • Networking: Cortina EDC CDR 10G Ethernet PHYs, Qualcomm Atheros QCA7000 UARTs, Microchip KSZ series switches, Allwinner H3 A83T A64 EMAC Ethernet controllers, Marvell Alaska 10Gbit PHYs, and Quantenna 802.11ac QSR10g FullMAC wireless interfaces.

    • Pin control: ZTE ZX296718 pin controllers, Ingenic JZ47xx SoC pin controllers, Intel Cannon Lake PCH pin controllers, Marvell Armada AP806 and CP110 pin controllers, Renesas RZ/A1 pin controllers, and Qualcomm IPQ8074 pin controllers.

    • USB: Motorola CPCAP USB PHYs, Renesas R-Car generation 3 USB 3.0 PHYs, Broadcom Northstar2 USB DRD PHYs, Synopsys USB 2.0 device controllers, and USB type-C connector system software interfaces.

    • Miscellaneous: Aspeed Virtual UARTs, Analog Devices ADG792A/ADG792G Multiplexers, Intel Thunderbolt internal connection managers, Infinion IR35221 digital DC-DC multiphase converters, Dialog Semiconductor DA9061 regulators, TI LP87565 power regulators, HiSilicon Hi6421v530 PMIC voltage regulators, Amlogic Meson SPICC controllers, STMicroelectronics STM32 SPI controllers, Intel ACPI INT0002 virtual GPIO controllers, Motorola CPCAP PMIC battery monitors, Inside Secure SafeXcel cryptographic engines, Cavium CNN55XX cryptographic accelerators, and Faraday Technology FTIDE010 parallel ATA controllers.

Changes visible to kernel developers include:

  • There are many uses for universally unique identifiers (UUIDs) in the kernel. There are now two standard types for UUIDs: uuid_t and guid_t, replacing the uuid_be and uuid_le types used in some parts of the kernel previously. Various helper functions have been gathered and added to <linux/uuid.h>, and a number of kernel subsystems have been updated to use the new API.

  • The block-layer error-code refactoring described in this article has been merged.

  • The read-copy-update full-system idle detection mechanism has been removed, since nothing uses it. The sleepable RCU implementation has also been removed since it no longer seems to be needed.

  • The new CONFIG_REFCOUNT_FULL configuration option can be used to select a version of the refcount_t reference-count implementation that drops the overflow tests to gain a bit more performance. By default, this option is enabled.

  • The new "mux" driver subsystem provides support for multiplexer controllers that manage multiple devices.

  • The SPI driver subsystem has gained support for SPI slave mode.

By the usual schedule, the 4.13 merge window should close on July 16, with the final 4.13 release due in the first half of September. In other words, developers who are planning on attending the Linux Plumbers Conference or the North America Open Source Summit will want to be prepared for the merge window to be open during the events.

A followup article, covering the rest of the 4.13 merge window, will be posted after the 4.13-rc1 release happens.

Index entries for this article
KernelReleases/4.13


to post comments

Kernel TLS

Posted Jul 11, 2017 0:16 UTC (Tue) by fratti (guest, #105722) [Link] (4 responses)

>A kernel-based TLS implementation has been merged, enabling better performance for protocols like HTTPS.

Oh dear, it happened. What was the reasoning that finally got it merged?

Kernel TLS

Posted Jul 11, 2017 2:57 UTC (Tue) by [email protected] (subscriber, #60682) [Link]

> What was the reasoning that finally got it merged?
BPF filtering on TLS connections, sendfile and hardware TLS offload were some important motivators.

Kernel TLS

Posted Jul 11, 2017 12:45 UTC (Tue) by epa (subscriber, #39769) [Link] (2 responses)

Can the kernel read mail yet?

Kernel TLS

Posted Jul 11, 2017 21:40 UTC (Tue) by neilbrown (subscriber, #359) [Link] (1 responses)

> Can the kernel read mail yet?

Yes, I can read, understand, and reply-to email. That is what lkml is for. It is just the kernel talking to itselves. All the humans left long ago.

Kernel TLS

Posted Jul 12, 2017 20:42 UTC (Wed) by nix (subscriber, #2304) [Link]

Left? No, no, the humans were uploaded into the kernel. drivers/ isn't *hardware* drivers: it's where the people driving the kernel development are stored. (There's no other explanation for its being that many lines long.)

A lot of them have neural connection maps inside the amdgpu directory (that's what all those abstruse numbers in the alleged register dumps are for).

Classic SRCU removal

Posted Jul 11, 2017 4:55 UTC (Tue) by bjorntopel (subscriber, #80345) [Link]

> The sleepable RCU implementation has also been removed since it no longer seems to be needed.

Just a clarification; It's the classic SRCU that's removed -- tree/tiny SRCU is still around.

4.13 Merge window, part 1

Posted Jul 14, 2017 17:27 UTC (Fri) by jim.epost (guest, #98788) [Link] (1 responses)

Will a man page format for documentation reappear at some point? DocBooks generally may be unmourned, but the mandocs were a link with Unix tradition and handy for quick lookups.

Man pages

Posted Jul 14, 2017 19:02 UTC (Fri) by corbet (editor, #1) [Link]

Getting man pages back is on my list. It shouldn't be that hard, really, it's just a matter of taking some time to make it work. Almost nobody has complained, which tends not to motivate effort in this area... We'll get there.

4.13 Merge window, part 1

Posted Jul 19, 2017 7:12 UTC (Wed) by jan.kara (subscriber, #59161) [Link]

Actually, it isn't "non-blocking buffered I/O" patch set that got merged but "non-blocking direct I/O"...


Copyright © 2017, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds