|
|
Subscribe / Log in / New account

5.4 Merge window, part 1

By Jonathan Corbet
September 23, 2019
As of this writing, 9,632 non-merge changesets have been merged for the 5.4 kernel. This merge window is thus off to a strong start. There has been a wide range of changes merged across the kernel tree, including vast numbers of cleanups and fixes.

Some of the highlights from the first half of the 5.4 merge window include:

Architecture-specific

  • The Arm64 architecture can now use 52-bit addresses on hardware that supports them.
  • It is now possible to pass tagged pointers (pointers with user data in the most significant byte) as system-call arguments on the Arm64 architecture. There is a new prctl() option to enable or disable the use of tagged pointers.
  • Support for the SGI SN2 (IA64-based) architecture has been removed.
  • The PA-RISC architecture has gained support for the kexec_file_load() system call and kprobes.
  • Support for Intel's MPX feature is being removed, seemingly as a result of the lack of the necessary support in the compiler toolchain.

Core kernel

  • The waitid() system call has a new P_PIDFD wait type; specifying that type will cause a wait for a pidfd rather than a normal process ID.
  • The "haltpoll" CPU idle governor has been merged. This governor will poll for a while before halting an otherwise idle CPU; it is intended for virtualized guest applications where it can improve performance by avoiding exits to the hypervisor. See this commit for some more information.

Filesystems and block I/O

  • The iocost I/O controller (formerly called io.weight) has been merged. It should provide better I/O performance, for some workloads at least. See this commit for more information.
  • Despite some controversy, the EROFS read-only filesystem has been moved into the main kernel from the staging tree.
  • Despite even more controversy, the exFAT filesystem has been added to the staging tree. There is, evidently, a different version of this module at Samsung that might eventually replace the one that has been merged; stay tuned.
  • The fscrypt filesystem encryption mechanism has gained a number of new ioctl() calls to improve key management and more; see this commit for details.
  • The fs-verity file integrity mechanism has been merged at last. This documentation file describes the feature in detail.
  • The kernel will no longer allow user space to write to active swap files.
  • A warning will now be issued whenever somebody mounts a filesystem that is unable to represent dates at least 30 years in the future.
  • It is now possible to boot a system using a CIFS filesystem as the root; see this commit for details.

Hardware support

  • Graphics: LG LB035Q024573 RGB panels, NEC NL8048HL11 RGB panels, Sharp LS037V7DW01 VGA LCD panels, Sony ACX565AKM panels, and Toppoly (TPO) TD028TTEC1 and TD043MTEA1 panels.
  • Industrial I/O: Analog Devices ADIS16460 inertial sensors, Maxim Integrated MAX5432-MAX5435 potentiometers, and ON Semiconductor NOA1305 ambient light sensors.
  • Input: FlySky FS-iA6B RC receivers.
  • Media: OmniVision ov5675 sensors, Allwinner A10 CMOS sensor interfaces, and NXP i.MX IPUv3 IC PP image processors.
  • Miscellaneous: firmware trusted platform modules running inside an Arm trusted execution environment, Inspur power-supply controllers, Silergy SY8824C regulators, MediaTek MT6358 power-management ICs, Nuvoton NPCM SPI controllers, devices connected to the Turris Mox "Moxtet" bus, Freescale linflexuart serial ports, Qualcomm QCS404 interconnect buses, Lantiq VRX200/ARX300 PCIe PHYs, SGI ASIC 1-Wire interfaces, and HiSilicon ZIP accelerators.
  • Network: Fintek F81601 PCIE to CAN controllers, Kvaser PCIe FD CAN controllers, TI TCAN4X5X M_CAN controllers, Microchip KSZ8795 series switches, ASPEED MDIO bus controllers, NXP ENETC central MDIO controllers, Analog Devices Industrial Ethernet PHYs, and Pensando Ethernet IONIC adapters.
  • Pin control: Aspeed G6 SoC pin controllers and Qualcomm SC7180 pin controllers.
  • Sound: Cirrus Logic CS47L15 and CS47L92 codecs, NXP UDA1334 codecs, and NXP i.MX audio digital signal processors.
  • USB: Cadence USBSS dual-role device controllers.

Networking

  • It is now possible to load a BPF program to generate SYN cookies; this hook can run either in the traffic control or XDP modes. See this commit for some more information.
  • There is now support for the SAE J1939 protocol used in car and truck networks; see this commit for details. This work has the unique distinction of carrying a Signed-off-by tag from the "kbuild test robot" at Intel; which parts of the patch were authored by the robot is not entirely clear.

Security-related

  • The Lenovo ThinkPad "PrivacyGuard" feature, which can restrict the usable viewing angles of the screen from software, is now supported. See this commit for information on how to control this feature.

Miscellaneous

  • Much of the "compile once, run everywhere" work for BPF has been merged. These patches (ending in this commit) enhance the user-space libbpf code to be able to read structure-field offsets from the kernel BTF data and relocate BPF code to match the configuration of the currently running kernel.

The 5.4 merge window can be expected to stay open until September 29, assuming the usual schedule holds (and there is no reason to assume it won't). The second half of the merge window is certain to be slower than the first, but there are still some significant trees to be pulled; LWN will post a followup article once the 5.4-rc1 kernel is out. If all goes well, the final 5.4 release will happen in the second half of November.

Index entries for this article
KernelReleases/5.4


to post comments

5.4 Merge window, part 1

Posted Sep 24, 2019 0:25 UTC (Tue) by neilbrown (subscriber, #359) [Link] (2 responses)

> The kernel will no longer allow user space to write to active swap files.

This surprises me. I thought that a negative i_writecount has always prevented user-space writes, and has always been set by swap-on. What has changed?

5.4 Merge window, part 1

Posted Sep 24, 2019 3:02 UTC (Tue) by nivedita76 (subscriber, #121790) [Link] (1 responses)

Darrick Wong seems to have discovered as part of his immutable flag cleanup that some similar holes existed for swap files.

"I also discovered that userspace programs can write and create writable
memory mappings to active swap files. This is extremely bad because
this allows anyone with write privileges to corrupt system memory. The
final patch in this series closes off that hole, at least for swap
files."

5.4 Merge window, part 1

Posted Sep 24, 2019 22:46 UTC (Tue) by neilbrown (subscriber, #359) [Link]

Hmm.... it seems that i_write_count has never been used for swap file ... I wonder why not. It is only used for executabled and DENY_WRITE mappings.
Funny how easy it is to remember things that aren't true!

5.4 Merge window, part 1

Posted Sep 26, 2019 2:24 UTC (Thu) by naptastic (guest, #60139) [Link] (3 responses)

> The Arm64 architecture can now use 52-bit addresses on hardware that supports them.

Who's making ARM systems with 4 TiB of RAM?

5.4 Merge window, part 1

Posted Sep 26, 2019 6:10 UTC (Thu) by jem (subscriber, #24231) [Link]

Well, obviously nobody, since there was no way of using it until now. Besides, 640k ought to be enough for anybody.

5.4 Merge window, part 1

Posted Sep 26, 2019 10:00 UTC (Thu) by excors (subscriber, #95769) [Link] (1 responses)

> Who's making ARM systems with 4 TiB of RAM?

I guess you meant 2^52 = 4 PiB, not 4 TiB? The latter is easy: https://www.gigabyte.com/ARM-Server/R281-T94-rev-100 is a dual-socket ARM server which supports "Up to 16 DIMMS per socket, up to 4 TB of memory per system in dual socket configuration".

Then there's things like Optane DIMMs, which seem to go up to 512 GiB now, so you could physically fit 8 TiB of addressable memory per socket into that server (although I assume it won't actually work on non-Intel platforms).

The kernel is being increased from 48-bit which is 256 TiB, and it sounds like we're not too many years away from reaching that limit.

5.4 Merge window, part 1

Posted Sep 30, 2019 16:27 UTC (Mon) by cesarb (subscriber, #6266) [Link]

To make things even more interesting, ARM can have three different base page sizes: 4KB, 16KB, and 64KB (this has led to some fun compatibility issues when packages autodetect and hardcode the page size during their build, for instance jemalloc: https://github.com/jemalloc/jemalloc/issues/467). In some distributions (for instance, current Fedora, if I read their kernel config correctly), the kernel is compiled to use 4KB pages; in other distributions (for instance, current RedHat, if I read their kernel config correctly), the kernel is compiled to use 64KB pages. The 52-bit addresses are only available when the kernel is compiled to use 64KB pages (which is probably why RedHat chose that option).

5.4 Merge window, part 1

Posted Sep 30, 2019 8:54 UTC (Mon) by BET-frogger (subscriber, #48302) [Link] (3 responses)

> There is now support for the SAE J1939 protocol used in car and truck networks; see this commit for details. This work has the unique distinction of carrying a Signed-off-by tag from the "kbuild test robot" at Intel; which parts of the patch were authored by the robot is not entirely clear.

During development we posted the incremental patches regularly to the linux-can mailing list and the the whole code was available on the linux-can-next git repo on kernel.org. The kbuild test robot compiled the branch, noticed some problems and send patches (as every good developer should do :D). In order to merge the stack, we squashed all patches into one, carrying the S-o-b off all contributing entities. The whole development history is available at https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux....

The three patches the kbuild robot contributed are:

https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux...
https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux...
https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux...

Marc

5.4 Merge window, part 1

Posted Sep 30, 2019 16:20 UTC (Mon) by BenHutchings (subscriber, #37955) [Link] (2 responses)

Computer programs aren't legal persons so I don't see how they can assert the Developer's Certificate of Origin.

5.4 Merge window, part 1

Posted Sep 30, 2019 16:31 UTC (Mon) by BET-frogger (subscriber, #48302) [Link]

A quick `git log --author="kbuild test robot <lkp@intel.com>"` shows patches which are S-o-b'ed by the "kbuild test robot" since March 2019. Do we need a captcha next to the S-o-b now :) ?

5.4 Merge window, part 1

Posted Oct 2, 2019 21:12 UTC (Wed) by tbird20d (subscriber, #1901) [Link]

Presumably the submitted code is authored by the tool itself, presumably based on templates for certain kinds of fixes. While the tool has no human intent, it can certainly convey that the assertions in the DCO are true, with respect to the code it is submitting.


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