The 5.6 merge window opens
Architecture-specific
- The Arm E0PD feature is now supported; it provides the security benefits of kernel page-table isolation without the associated cost.
- The Arm8.5 RNG instruction, which provides access to a hardware random-number generator, is now supported; it is used to initialize the kernel's random-number generator.
Core kernel
- Realtime tasks running on heterogeneous (big.LITTLE) systems can now set the uclamp_min parameter (introduced with scheduler utilization clamping patches in 5.3) to ensure that they are scheduled on a CPU that is powerful enough.
- Time namespaces have finally been merged. The primary use case for this feature is to ensure that clocks behave rationally when a container is migrated from one host to another, but other uses will surely arise. Some more information can be found in this commit.
- There is a new boot-time parameter (managed_irq) that causes the kernel to attempt to prevent managed interrupts from disturbing isolated CPUs; see this commit for more information.
- The BPF dispatcher and batched BPF map operations, both of which were described in this article, have been merged.
- BPF global functions are a part of the effort to support BPF "libraries" within the kernel. The next step is dynamic program extensions, which allow the loading of global functions — and the replacement of existing global functions while they are in use.
- The new CPU idle-injection device can cool an overheating CPU by forcing it to go idle for short periods of time; see this documentation patch for more information.
- The openat2() system call has been added. It includes a number of new flags to restrict pathname resolution; see this commit for documentation.
Filesystems and block I/O
- The Btrfs filesystem has a new "asynchronous discard" mode enabled with the discard=async mount option. This rigorously undocumented feature creates a list of no-longer-used blocks that can be given to the storage device's "discard" operation at some future time, rather than discarding them immediately. That helps to prevent discard operations from delaying transactions, improves the chances of reusing blocks before needing to discard them, and allows larger blocks to be discarded in a single operation. Some more information can be found in this patch-series cover letter.
Hardware support
- GPIO and pin control: SiFive GPIO controllers, Xylon LogiCVC GPIO controllers, Qualcomm WCD9340/WCD9341 GPIO controllers, and NXP IMX8MP pin controllers.
- Hardware monitoring: Maxim MAX31730 temperature sensors, Maxim MAX20730, MAX20734, and MAX20743 regulators, Infineon XDPE122 VR controllers, Analog Devices ADM1177 power monitors, Allwinner sun8i thermal sensors, and Broadcom AVS RO thermal sensors. Also: it is now possible to query sensors in ATA drives (temperature in particular) via sysfs; see this commit for details.
- Industrial I/O: Analog Devices AD7091R5 analog-to-digital converters, Linear Technology LTC2496 analog-to-digital converters, Bosch BMA400 3-axis accelerometers, and All Sensors DLHL60D and DLHL60G pressure sensors.
- Miscellaneous: Intel Uncore frequency controllers, TI K3 UDMA controllers and ring accelerator modules, HiSilicon DMA Engines, HiSilicon SPI-NOR flash controllers, ROHM BD71828 power regulators, Monolithic MPQ7920 power-management ICs, NXP i.MX8M DDR controllers, Microchip PIT64B clocks, Qualcomm MSM8916 interconnect buses, NXP i.MX INTMUX interrupt multiplexers, and AMD secure processors with trusted execution environment support.
- Network: Broadcom BCM84881 PHYs, Qualcomm Atheros AR9331 Ethernet switches, Qualcomm 802.11ax chipsets, ZHAW InES PTP time stamp generators, and Marvell OcteonTX2 interfaces.
- Sound: the ALSA subsystem has seen some significant changes to avoid the year-2038 apocalypse; that includes some extensions to the user-space API. This commit describes the most significant changes. Support was also added for Qualcomm WCD9340/WCD9341 codecs, Qualcomm WSA8810/WSA8815 Class-D amplifiers, Realtek RT700, RT711, RT715, and RT1308 codecs, Ingenic JZ4770 codecs, and Mediatek MT6660 speaker amplifiers.
- USB: The Thunderbolt specification has morphed into USB4; the kernel configuration options for Thunderbolt have been renamed accordingly. Support for MediaTek MUSB controllers and Intel EMMC PHYs has been added.
Memory management
- There is a new control-group controller to manage hugetlb usage; see this commit for more information.
Networking
- At long last, the WireGuard virtual private network implementation has been merged into the mainline. Linus Torvalds was evidently happy with this development.
- The "enhanced transmission selection scheduler" queuing discipline has
been added. This nearly undocumented module does have a bit of help
text: "
The Enhanced Transmission Selection scheduler is a classful queuing discipline that merges functionality of PRIO and DRR qdiscs in one scheduler. ETS makes it easy to configure a set of strict and bandwidth-sharing bands to implement the transmission selection described in 802.1Qaz.
" Some more general information can be found on the IEEE 802.1Qaz page. - There is a long-running effort to switch ethtool from its ioctl() interface to netlink. Much of the ground work was merged for 5.6; see this merge commit and this document for more information.
- The process of upstreaming the multipath TCP patches has begun, with a number of the prerequisite patches being merged. Multipath TCP will not be supported in 5.6, but it's getting closer.
- The new BPF_PROG_TYPE_STRUCT_OPS BPF program type allows a BPF program to fill in where a function pointer would otherwise be used in the kernel; this feature was introduced with this commit. The first use of this feature is to allow the writing of TCP congestion-control algorithms in BPF; this commit adds a DCTCP implementation as an example.
- The Flow Queue PIE packet scheduler, which is aimed at addressing bufferbloat problems, has been added. Cable modems appear to be a use case of interest for FQ-PIE.
Security-related
- The ability to disable the SELinux security module at run time has
been deprecated with an eye toward removing it in a future release.
This feature is still used by Fedora and RHEL, but has been left
behind by most other distributions. The preferred way to disable
SELinux is with the selinux=0 command-line parameter.
Interestingly, the deprecation plan for this feature involves making it "
increasingly painful
" to enable by inserting a boot-time delay that grows longer with each release.
Internal kernel changes
- ioremap_nocache() and devm_ioremap_nocache() have long been redundant, since plain ioremap() already provides uncached mappings. These functions have now been removed; over 300 files have been touched to convert all remaining callers.
By the normal schedule, the 5.6 merge window should stay open until
February 9, with the final 5.6 release happening at the end of March
or the beginning of April. Stay tuned for our second-half summary, to be
published just after the 5.6-rc1 release is made.
Index entries for this article | |
---|---|
Kernel | Releases/5.6 |
Posted Jan 30, 2020 21:20 UTC (Thu)
by grober (guest, #136840)
[Link] (3 responses)
Posted Jan 30, 2020 21:48 UTC (Thu)
by corbet (editor, #1)
[Link] (2 responses)
Posted Jan 31, 2020 0:03 UTC (Fri)
by sub2LWN (subscriber, #134200)
[Link] (1 responses)
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
I noticed a recent merge from an LWN repo:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
Including "A new document on how to help with documentation" which I assume is Documentation/doc-guide/contributing.rst
I had no idea you are the Documentation maintainer. Which subsystems do you think are improving the most in regards to their documentation? Other than:
https://www.kernel.org/doc/html/latest/process/maintainer...
Hunting around for descriptions of the "merge window" process itself, as a kernel noob, I found this section of "A guide to the Kernel Development Process" comprehensive:
https://www.kernel.org/doc/html/latest/process/2.Process....
Posted Jan 31, 2020 6:57 UTC (Fri)
by pbonzini (subscriber, #60935)
[Link]
Posted Jan 31, 2020 14:30 UTC (Fri)
by hailfinger (subscriber, #76962)
[Link] (2 responses)
Cover letter: https://marc.info/?l=linux-netdev&m=157468978806473&...
For some networks, all non-TCP communication to the outside is blocked, so you can neither use UDP encapsulation nor raw ESP to establish an IPsec tunnel. With these patches, you can finally use port 443/TCP to establish an IPsec tunnel. Obviously, tunneling e.g. TCP over TCP has some drawbacks, but at least the option does exist now.
@corbet: Would it be possible to mention this in the article (or a followup) in the network section? Thanks!
Posted Jan 31, 2020 16:49 UTC (Fri)
by josh (subscriber, #17465)
[Link]
Posted Feb 11, 2020 2:21 UTC (Tue)
by shef (subscriber, #91287)
[Link]
Posted Feb 6, 2020 9:50 UTC (Thu)
by NRArnot (subscriber, #3033)
[Link] (4 responses)
At present, if something won't work and the reason is not obvious, a simple test is to disable selinux, test again, and re-enable selinux seconds later having established whether or not it's the source of the problem. (On a test machine, not a public-facing server).
Having to reboot to test will be a complete PITA. Especially if the fix is still not obvious and several iterations are required.
Posted Feb 7, 2020 12:44 UTC (Fri)
by ScottMinster (subscriber, #67541)
[Link] (1 responses)
I can see how being able to disable it on a production server could be a bad thing, as a debugging tool it is nice.
If there was an easier way to determine why a process (like a web server) cannot read a file other than "permission denied" maybe it wouldn't be as big a deal.
Posted Feb 27, 2020 9:36 UTC (Thu)
by cortana (subscriber, #24596)
[Link]
Posted Feb 7, 2020 22:41 UTC (Fri)
by mchapman (subscriber, #66589)
[Link] (1 responses)
Posted Feb 7, 2020 22:51 UTC (Fri)
by mchapman (subscriber, #66589)
[Link]
Posted Feb 6, 2020 20:00 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
Posted Feb 12, 2020 12:32 UTC (Wed)
by glm (subscriber, #45719)
[Link]
The 5.6 merge window opens
This kind of comment is really not helpful to anybody. LWN comments are far better when we're not just tossing random childish insults around; could I ask you (and others!) to please stop doing that?
Can we stop this?
Can we stop this?
Can we stop this?
RFC 8229 (TCP Encapsulation for IPsec) support merged
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/...
RFC 8229 (TCP Encapsulation for IPsec) support merged
RFC 8229 (TCP Encapsulation for IPsec) support merged
The 5.6 merge window opens
The 5.6 merge window opens
The 5.6 merge window opens
If I understand the changes correctly, they do not alter the ability to use The 5.6 merge window opens
getenforce
to toggle whether SELinux is in enforcing or permissive mode.
Uh, The 5.6 merge window opens
setenforce
obviously.
The 5.6 merge window opens
Do we need MORE evidence that SELinux was designed by plants from the NSA to subvert Linux security?
The 5.6 merge window opens