|
|
Subscribe / Log in / New account

The 5.6 merge window opens

By Jonathan Corbet
January 30, 2020
As of this writing, 4,726 non-merge changesets have been pulled into the mainline repository for the 5.6 development cycle. That is a relatively slow start by contemporary kernel standards, but it still is enough to bring a number of new features, some of which have been pending for years, into the mainline. Read on for a summary of the changes pulled in the early part of the 5.6 merge window.

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
KernelReleases/5.6


to post comments

The 5.6 merge window opens

Posted Jan 30, 2020 21:20 UTC (Thu) by grober (guest, #136840) [Link] (3 responses)

BPF == Biggest Possible Fuckup.

Can we stop this?

Posted Jan 30, 2020 21:48 UTC (Thu) by corbet (editor, #1) [Link] (2 responses)

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?

Posted Jan 31, 2020 0:03 UTC (Fri) by sub2LWN (subscriber, #134200) [Link] (1 responses)

BPF := Banter Prudently, Fellow :-) Glancing at the git log:

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....

Can we stop this?

Posted Jan 31, 2020 6:57 UTC (Fri) by pbonzini (subscriber, #60935) [Link]

Not exactly an answer to your question, but you may be interested in this recent article from LWN: https://lwn.net/Articles/810404/

RFC 8229 (TCP Encapsulation for IPsec) support merged

Posted Jan 31, 2020 14:30 UTC (Fri) by hailfinger (subscriber, #76962) [Link] (2 responses)

Support for RFC 8229 (TCP Encapsulation of IKE and IPsec Packets) was also merged in this series of commits:
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/...

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!

RFC 8229 (TCP Encapsulation for IPsec) support merged

Posted Jan 31, 2020 16:49 UTC (Fri) by josh (subscriber, #17465) [Link]

I'm hoping that HTTP/3 helps convince the operators of such networks that blocking UDP is a problem.

RFC 8229 (TCP Encapsulation for IPsec) support merged

Posted Feb 11, 2020 2:21 UTC (Tue) by shef (subscriber, #91287) [Link]

As far as I know some user equipment manufacturers support TLS encapsulation for WiFi calling which is relying on IPsec/IKE by default. Some time back 3GPP defined TLS profiles as a firewall bypass mechanism. Curious if 3GPP will switch back to IPsec/IKE over TCP if it is going to be supported by Android.

The 5.6 merge window opens

Posted Feb 6, 2020 9:50 UTC (Thu) by NRArnot (subscriber, #3033) [Link] (4 responses)

Losing runtime disable of selinux will make life far harder for sysadmins.

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.

The 5.6 merge window opens

Posted Feb 7, 2020 12:44 UTC (Fri) by ScottMinster (subscriber, #67541) [Link] (1 responses)

Indeed, just last night I was setting up a new server and things were not working. I suspected that it might be a bad SELinux context on some files. Since temporarily disabling SELinux caused things to start working, that confirmed my suspicions, and I was able to quickly resolve the issue (and then re-enable SELinux).

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.

The 5.6 merge window opens

Posted Feb 27, 2020 9:36 UTC (Thu) by cortana (subscriber, #24596) [Link]

The audit log?

The 5.6 merge window opens

Posted Feb 7, 2020 22:41 UTC (Fri) by mchapman (subscriber, #66589) [Link] (1 responses)

If I understand the changes correctly, they do not alter the ability to use getenforce to toggle whether SELinux is in enforcing or permissive mode.

The 5.6 merge window opens

Posted Feb 7, 2020 22:51 UTC (Fri) by mchapman (subscriber, #66589) [Link]

Uh, setenforce obviously.

The 5.6 merge window opens

Posted Feb 6, 2020 20:00 UTC (Thu) by Cyberax (✭ supporter ✭, #52523) [Link]

> 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.
Do we need MORE evidence that SELinux was designed by plants from the NSA to subvert Linux security?

The 5.6 merge window opens

Posted Feb 12, 2020 12:32 UTC (Wed) by glm (subscriber, #45719) [Link]

About the "new boot-time parameter (managed_irq)": I don't understand the concept of "managed interrupts". Could you give a short explanation and some examples?


Copyright © 2020, 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