4.13 Merge window, part 1
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.
- 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.
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 | |
---|---|
Kernel | Releases/4.13 |
Posted Jul 11, 2017 0:16 UTC (Tue)
by fratti (guest, #105722)
[Link] (4 responses)
Oh dear, it happened. What was the reasoning that finally got it merged?
Posted Jul 11, 2017 2:57 UTC (Tue)
by [email protected] (subscriber, #60682)
[Link]
Posted Jul 11, 2017 12:45 UTC (Tue)
by epa (subscriber, #39769)
[Link] (2 responses)
Posted Jul 11, 2017 21:40 UTC (Tue)
by neilbrown (subscriber, #359)
[Link] (1 responses)
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.
Posted Jul 12, 2017 20:42 UTC (Wed)
by nix (subscriber, #2304)
[Link]
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).
Posted Jul 11, 2017 4:55 UTC (Tue)
by bjorntopel (subscriber, #80345)
[Link]
Just a clarification; It's the classic SRCU that's removed -- tree/tiny SRCU is still around.
Posted Jul 14, 2017 17:27 UTC (Fri)
by jim.epost (guest, #98788)
[Link] (1 responses)
Posted Jul 14, 2017 19:02 UTC (Fri)
by corbet (editor, #1)
[Link]
Posted Jul 19, 2017 7:12 UTC (Wed)
by jan.kara (subscriber, #59161)
[Link]
Kernel TLS
Kernel TLS
BPF filtering on TLS connections, sendfile and hardware TLS offload were some important motivators.
Kernel TLS
Kernel TLS
Kernel TLS
Classic SRCU removal
4.13 Merge window, part 1
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.
Man pages
4.13 Merge window, part 1