4.15 Merge window part 1
Core kernel
- The control-group v2 subsystem finally has a CPU controller, bringing a long story to a happy ending.
- The live-patching mechanism has seen a couple of significant improvements. The "shadow variables" mechanism allows the addition of data to structures; it will be used in patches that make data-structure modifications. There is also a new callback mechanism that can invoke kernel code when an object is patched, extending the ability to apply live patches affecting tricky areas like global data or assembly code.
Architecture-specific
- The openrisc architecture has gained support for SMP systems.
- The RISC-V architecture is now supported — sort
of. "
The port is definitely a work in progress. While what's there builds and boots with 4.14, it's a bit hard to actually see anything happen because there are no device drivers yet
". - AMD's secure encrypted virtualization feature is now supported. This feature, which builds on the secure memory encryption work merged in 4.14, allows virtual machines to run with memory that is encrypted and unreadable by other virtual machines or the host system.
- Intel's user-mode instruction prevention (UMIP) feature, which disables user-mode access to specific security-relevant instructions, is supported. The feature is disabled by default because it breaks some applications (Wine, for example), but the plan is to address these problems during this development cycle.
- The arm64 architecture has gained support for the scalable vector extension mechanism.
Filesystems/block layer
- The Smack security module is now able to work with the overlayfs union filesystem.
- The XFS filesystem has gained initial support for online filesystem checking. This feature is incomplete and is not yet intended for production use.
- The NVMe block driver has gained native multipath support, enabling high-performance concurrent I/O on high-end systems.
Networking
- The networking layer now supports the "ThunderboltIP" protocol for passing IP packets over a Thunderbolt cable.
- Support for SCTP stream schedulers has been added. Three schedulers (FCFS, priority, and round-robin) have been merged.
- Most TCP-related sysctl knobs have been made aware of network namespaces.
- The network queueing discipline subsystem now has a "credit-based shaper" module. Such documentation as exists can be found in this commit.
BPF
- The user-space bpftool utility can be used to examine and manipulate BPF programs and maps; see this man page for more information.
- Hooks have been added to allow security modules to control access to BPF objects; see this changelog for more information.
- A new BPF-based device controller has been added; it uses the version-2 control-group interface. Documentation for this feature is entirely absent, but one can look at the sample program added in this commit that uses it.
Hardware support
- GPIO: Maxim MAX3191x industrial serializers, UniPhier GPIO controllers, and NVIDIA Tegra186 GPIO controllers.
- Graphics: Samsung S6E63J0X03 DSI command mode panels, Orise Technology otm8009a 480x800 dsi 2dl panels, Seiko 43WVF1G panels, Faraday TVE200 TV encoders, Rockchip LVDS controllers, Silicon Image SiI9234 HDMI/MHL bridges, and Raspberry Pi 7-inch touchscreen panels.
- Industrial I/O: Maxim Integrated DS4422/DS4424 DACs, RF Digital RFD77402 time-of-flight sensors, and Texas Instruments 8/10/12-bit 2/4-channel DACs.
- Input: EETI EXC3000 multi-touch panels, HiDeep touchscreens, and Samsung S6SY761 touchscreen controllers.
- Media: Sigma Designs SMP86xx IR decoders, Rockchip Raster 2d graphic acceleration units, Sony IMX274 sensors, and Tegra HDMI CEC interfaces.
- Miscellaneous: Maxim MAX6621 temperature sensors, Maxim MAX31785 fan controllers, TI SDHCI controllers, Amlogic Meson6/Meson8/Meson8b SD/MMC host controllers, Amlogic Meson GPIO interrupt multiplexers, Socionext external interrupt units, STMicroelectronics STM32 DMA multiplexers, STMicroelectronics STM32 master DMA controllers, Spreadtrum DMA controllers, PC Engines APU/APU2 LED controllers, HiSilicon STB PCIe host bridges, V3 Semiconductor PCI controllers, Intel Cherry Trail Dollar Cove TI power-management ICs, Spreadtrum SC27xx power-management ICs, and Texas Instruments DP83822 network PHYs.
- USB: TI TPS6598x USB power delivery controllers and Broadcom STB USB PHYs.
- The legacy Open Sound System audio drivers have been disabled since 4.12; as of 4.15, they have been removed entirely.
- The new LED activity trigger mechanism can use an attached LED to indicate the level of CPU activity in the system.
Internal kernel changes
- There are a couple of new helper scripts for people working on the documentation. find-unused-docs.sh will look for kerneldoc comments to exported functions that are not actually used in the formatted documentation. documentation-file-ref-check can be used to find references to nonexistent files in the documentation.
- The regmap framework now has support for using hardware spinlocks to control access to registers.
- The s390 architecture has gained alternatives support, allowing the kernel to patch itself at boot time to use newer instructions when they are available.
- The lockdep crossrelease mechanism was disabled in 4.14 due to various problems; those have been fixed and crossrelease is available once again in 4.15.
- The new down_read_killable() helper will attempt to take a reader/writer semaphore for read access while keeping the process killable by user space.
- Work toward getting rid of ACCESS_ONCE() continues; code should use READ_ONCE() or WRITE_ONCE() instead.
- There is a new timer function:
int timer_reduce(struct timer_list *timer, unsigned long expires);
It will (1) start the timer if it is not currently running, and (2) set the expiration to expires if expires is sooner than the current value.
- The kmemcheck memory-usage debugging tool has been removed from the kernel; it has been superseded by tools like KASAN.
- The __GFP_COLD memory-allocation flag, used to request a cache-cold page, has been removed. It wasn't properly implemented anyway, and the benefits from using it were far from clear.
Conclusion
Additionally, of the 8,861 changesets merged so far, 300 mention timer_setup(), making them part of the ongoing timer API change. There are also 57 patches adding SPDX identifiers.
By the normal schedule, the 4.15 merge window would end on
November 26, with the final 4.15 release happening in mid-January.
But, as mentioned above, the Thanksgiving holiday could change things,
causing the merge window to be either shorter or longer than usual.
However it plays out, LWN will run a followup article covering the rest of
this merge window.
Index entries for this article | |
---|---|
Kernel | Releases/4.15 |