6.4 Merge window, part 1
BPF
- It is now possible to store kptrs in more map types (specifically per-CPU hashmaps, LRU hashmaps, and local-storage maps).
- BPF programs can now use absolute time values in bpf_timer_start().
- There are improved kptr types for use with packet and XDP buffers. Other new kptr types include support for RCU-protected kptrs and reference-counted kptrs.
- Developers have added an awareness of Android APK packages for uprobe programs. This makes it easier to attach uprobes to code stored in an APK package.
- The generic iterators patch set has been merged, with the eventual goal of making it easier to write loops in BPF programs.
- The BPF verifier log, which contains vital information about why the verifier has rejected a program, can now be used in a rotating mode. This makes it more likely that the information actually needed by developers is still in the log when they look for it.
Core kernel
- There are two new ptrace() operations — PTRACE_GET_SYSCALL_USER_DISPATCH and PTRACE_SET_SYSCALL_USER_DISPATCH — which allow one process to manipulate the system-call user dispatch settings of another. The target use case for this feature is the Checkpoint/Restore in Userspace mechanism.
- The io_uring subsystem can perform multiple direct-I/O writes to a file in parallel if the underlying filesystem supports it; currently, ext4 and XFS have that support. There is also a new "multishot" timeout option that repeatedly generates timeouts without the need to re-arm the timer.
Filesystems and block I/O
- Calls to open() with both the O_DIRECTORY and O_CREAT flags have strange semantics that have varied over the years. As of 6.4, this flag combination will simply cause the call to fail with an EINVAL error.
- The F2FS filesystem can now support zoned block devices where the sizes of the zones are not a power of two.
- The command codes for the ublk driver have changed. This change will obviously break any programs using the old codes; for them, there is a configuration option (UBLK_LEGACY_OPCODES) that will cause the old codes to continue to work as well.
Hardware support
- GPIO and pin control: Loongson 64-bit GPIO controllers, Fairchild FXL6408 8-bit I2C-controlled GPIO expanders, and Intel Elkhart Lake PSE GPIO controllers.
- Graphics: Magnachip D53E6EA8966 DSI panels, Sony TD4353 JDI panels, Novatek NT36523 panels, Freescale i.MX LCD controllers, and Samsung MIPI DSIM bridges.
- Hardware monitoring: Starfive JH71x0 temperature sensors and ACBEL FSG032 power supplies.
- Miscellaneous: Qualcomm Cloud AI accelerators, Freescale i.MX8 image sensor interfaces, MSI laptop embedded controllers, Lenovo Yoga tablet-mode switches, Richtek RT5739 regulators, Richtek RT4803 boost regulators, and HiSilicon STB random-number generators
- Networking: Realtek RTL8710B(U) wireless interfaces, MediaTek MT7530 and MT7531 switches, STMicroelectronics STM32 basic extended CAN controllers, StarFive dwmac Ethernet controllers, AMD/Pensando core-device adapters, Realtek 8822BS, 8822CS, and 8821CS SDIO wireless network adapters, NXP 100BASE-TX PHYs, and Microchip 10BASE-T1S Ethernet PHYs.
Miscellaneous
- Noteworthy documentation additions include the kernel contribution maturity model and a detailed tutorial on how to build a trimmed kernel.
- The nolibc library has gained loongarch support.
Networking
- The kernel now supports the fair capacity and weighted fair queuing stream schedulers for the SCTP protocol.
- There is now generic support for binding LEDs to network switches or PHYs in the system devicetree.
- There is a new, netlink-based API for calling out to user space for helper functions. See this commit for an overview of the functionality and this commit to see how it is used to implement the TLS-handshake request.
- It is now possible to attach BPF programs to netfilter hooks, where they can make packet-forwarding decisions; this merge commit has some more information.
Security-related
- As expected, the SELinux runtime disable feature has been removed. This feature has been deprecated for years, and most distributions have long since disabled it themselves, so chances are good that nobody will notice.
- The SELinux "checkreqprot" functionality, which could be used to circumvent policy restrictions on the creation of executable memory mappings, has also been removed. Here, too, there was a lengthy deprecation cycle and it seems unlikely that anybody will be affected.
- The kernel can now restrict the .machine keyring, which holds machine-owner keys, to keys that are properly signed by a recognized certificate authority. The intent is to allow this keyring to be used with the Integrity Measurement Architecture (IMA) subsystem.
Internal kernel changes
- There is a new, generalized mechanism to enable the creation of kernel worker processes from user space; see this commit message for some more information.
- As expected, the SLOB memory allocator has been removed.
Assuming that the usual two-week schedule holds, the 6.4 merge window can
be expected to remain open until May 7. Once the window closes, you
will of course find a summary here on LWN.
| Index entries for this article | |
|---|---|
| Kernel | Releases/6.4 |
