KernelNewbies:

Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status or the Linux Kernel mailing list (there is a web interface in www.lkml.org or lore.kernel.org/lkml). The lore.kernel.org/lkml/ archive is also available via NTTP if you prefer to use a newsreader: use nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel for that. List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!

You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.

Linux 6.4 was released on Sun, 25 Jun 2023.

Summary: This release includes support for Intel's Linear Address Masking; stall pressure information can be polled by unprivileged users; a API for User-space trace events has been added; safer Kernel Samepage Merging with a new process/cgroup API; more scalable memory management with per-VMA locks and faster context switching between user and kernel threads, new BPF features, and removal of the SELinux runtime disable capability. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Enable Intel's Linear Address Masking

Enable Address Masking on Intel chips. This is similar to ARM's Top Byte Ignore and allows userspace to use some bits of pointers without masking it out before use, allowing sofware to use these untranslated address bits for metadata. The capability can be used for efficient address sanitizers (ASAN) implementation and for optimizations in JITs and virtual machines

Recommended LWN article: Support for Intel's Linear Address Masking

1.2. Unprivileged Pressure Stall Information

This release allows for unprivileged PSI polling, which allow unprivileged tools to provide this information to users.

1.3. New API for User-space trace events

A new API has been added for user-space trace events. In this new model during the event registration from user programs 3 new values are specified. The first is the address to update when the event is either enabled or disabled. The second is the bit to set/clear to reflect the event being enabled. The third is the size of the value at the specified address

Recommended LWN article: User trace events, one year later.

1.4. Safer Kernel Samepage Merging with a new process/cgroup API

So far KSM can only be enabled by calling madvise() for memory regions, but this API is too insecure. To be able to use KSM for more workloads, KSM needs to have the ability to be enabled and disabled at the process / cgroup level. This release adds two new options to the prctl system call. The first one allows to enable KSM at the process level and the second one to query the setting

Recommended LWN article: Process-level kernel samepage merging control

1.5. More scalable memory management with per-VMA locks

The memory management subsystem has added a new kind of locks in each VMA (Virtual Memory Area, a data structure that representes virtual memory) which means that some operations will no longer use the mmap_lock. This improves scalability in a number of scenarios. For example, startup of Android apps with a large number of threads.

Recommended LWN article: Concurrent page-fault handling with per-VMA locks

1.6. More scalable context switching between user and kernel threads

This release improves scalability of context switching between user and kernel threads on large systems with a threaded process spread across a lot of CPUs

This takes lazy tlb mm shootdown IPI interrupts from 314 to 3 on a 144 POWERPC CPU system doing a kernel compile.

1.7. New BPF features

As usual, this release brings new

BPF open-coded iterators, support for kptrs in more BPF maps, kptr RCU, shared ownership for local kptrs, support 64-bit pointers to kfuncs, or first class support for attaching uprobes to functions inside ELF objects containers in Android APKs.

Recommended LWN article: Generic iterators for BPF

1.8. Removal of the SELinux runtime disable capability

For security reasons, the ability to diable SELinux at runtime has been removed.

Recommended LWN article: Disabling SELinux's runtime disable

2. Core

3. File systems

3.1. BTRFS

  • Improve logging changes in a directory during one transaction, avoid iterating over items and reduce lock contention (fsync time 4x lower) commit

  • When logging directory entries during one transaction, reduce locking of subvolume trees by checking tree-log instead (improvement in throughput and latency for concurrent access to a subvolume) commit

  • scrub: rewrite scrub code flow, restructure how the stripes are enumerated and verified in a more unified way commit, commit, commit, commit, commit, commit

3.2. CEPH

  • Implement writeback livelock avoidance using page tagging commit

3.3. EROFS

3.4. EXT4

  • Replace linked list used to track extents that have been used for inode preallocation with a red-black tree in the multi-block allocator. This improves performance for workloads which do a large number of random allocating writes commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Convert pagecache_read() to use a folio commit

3.5. F2FS

3.6. NFS

  • NFSD support for RPC-with-TLS (RFC 9289). The goal is to provide a simple-to-deploy, low-overhead in-transit confidentiality and peer authentication mechanism. It can supplement NFS Kerberos and it can protect the use of legacy non-cryptographic user authentication flavors such as AUTH_SYS. The TLS Record protocol is handled entirely by kTLS, meaning it can use either software encryption or offload encryption to smart NICs commit, commit

  • NFSv3: handle out-of-order write replies commit

  • Convert readdir to use folios commit, commit

  • Convert the NFS fscache code to use netfs commit, commit, commit, commit, commit

3.7. 9P

4. Block layer

5. Memory management

6. Security

7. Networking

8. Tracing, perf and BPF

9. Virtualization

10. Architectures

10.1. ARM

10.2. X86

10.3. RISC-V

10.4. LOONGARCH

  • perf: Add basic support for LoongArch commit

  • Add support for function error injection commit

  • ftrace: Add direct call support and code simplification commit, commit, commit

  • crypto: Add crc32 and crc32c hw acceleration commit

  • Provide kernel fpu functions commit

  • Add checksum optimization for 64-bit system commit

10.5. MIPS

  • BCM47XX: Add support for Huawei B593u-12 commit

  • sibyte: Remove Sibyte CARMEL and CRHINE board support commit

10.6. OPENRISC

10.7. PARISC

  • Enable LOCKDEP support commit

10.8. POWERPC

10.9. S390

  • ap: introduce new AP bus sysfs attribute features commit

  • ap: introduce low frequency polling possibility commit

  • ap: add ap status asynch error support commit

  • ap: implement SE AP bind, unbind and associate commit

  • Enable HAVE_ARCH_STACKLEAK commit

  • kaslr: randomize module base load address commit

  • kaslr: generalize and improve random base distribution commit

  • Enable ARCH_HAS_SET_DIRECT_MAP commit

  • dasd: add dasd autoquiesce feature commit, commit, commit, commit, commit, commit, commit

11. Drivers

11.1. Storage

11.2. Graphics

11.3. Drivers in the Staging area

  • staging: iio: meter: Drop ade7854 driver commit

11.4. Cryptography

11.5. Nvmem

11.6. Bluetooth

  • Add WCN6855 Bluetooth support commit, commit, commit, commit

  • btrtl: Add the support for RTL8851B commit

  • hci_mrvl: Add serdev support for 88W8997 commit, commit, commit, commit, commit

  • hci_bcm: 4 fixes / tweaks commit, commit, commit, commit

  • btnxpuart: Add support to download helper FW file for w8997 commit

  • btnxpuart: Enable flow control before checking boot signature commit

  • btusb: Add new PID/VID 04ca:3801 for MT7663 commit

  • btrtl: Add support for RTL8852BS commit

  • btusb: Add WCN6855 devcoredump support commit

  • btrtl: Firmware format v2 support commit

  • Add VID/PID 0489/e0e4 for MediaTek MT7922 commit

  • Improve support for Actions Semi ATS2851 based devices commit

  • Two additional devices commit

11.7. Networking

11.8. Audio

11.9. Tablets, touch screens, keyboards, mouses

11.10. TV tuners, webcams, video capturers

11.11. Universal Serial Bus

11.12. Serial Peripheral Interface (SPI)

  • Add support for Amlogic A1 SPI Flash Controller commit, commit

  • spi-cadence: Add Slave mode support commit, commit

  • Add Quad SPI driver for StarFive JH7110 !SoC commit, commit

  • intel-pci: Add support for Meteor Lake-S SPI serial flash commit

  • spi: Tegra TPM driver with HW flow control commit, commit

11.13. Watchdog

  • Add driver for StarFive JH7100/JH7110 RISC-V SoCs commit, commit

11.14. Serial

11.15. Voltage, current regulators, power capping, power supply

11.16. Real Time Clock (RTC)

  • bbnsm: Add the bbnsm rtc support commit

11.17. Pin Controllers (pinctrl)

11.18. Multi Media Card (MMC)

11.19. Memory Technology Devices (MTD)

11.20. Industrial I/O (iio)

11.21. Multi Function Devices (MFD)

  • Add RZ/G2L MTU3a Core, Counter and pwm driver commit, commit, commit, commit, commit

  • intel-lpss: Add Intel Meteor Lake PCH-S LPSS PCI IDs commit

  • intel_soc_pmic_chtwc: Add Lenovo Yoga Book X90F to intel_cht_wc_models commit

  • Remove SEC S5M MFDs with no compatibles commit, commit

  • max597x: Add support for MAX5970 and MAX5978 commit, commit

11.22. Pulse-Width Modulation (PWM)

11.23. Inter-Integrated Circuit (I2C + I3C)

11.24. Hardware monitoring (hwmon)

11.25. General Purpose I/O (gpio)

  • loongson: add gpio driver support commit, commit

  • fxl6408: add I2C GPIO expander driver commit, commit

  • tangier: Introduce Intel Tangier GPIO driver commit

  • elkhartlake: Introduce Intel Elkhart Lake PSE GPIO commit

11.26. DMA engines

11.27. Cryptography hardware acceleration

  • p10-aes-gcm: Supporting functions for ghash commit

  • p10-aes-gcm: Supporting functions for AES commit

  • p10-aes-gcm: An accelerated AES/GCM stitched implementation commit

  • hisilicon/trng - add support for HiSTB TRNG commit

11.28. Clock

11.29. MTD

  • spinand: add support for ESMT F50x1G41LB commit

  • spi-nor: spansion: Add support for s25hl02gt and s25hs02gt commit

11.30. Power Management

  • ACPI: CPPC: Add min and max perf register writing support commit

  • pm-graph: Update to v5.11 commit

  • ACPI: sysfs: Enable ACPI sysfs support for CCEL records commit

  • thermal/drivers/mediatek: Add support for MT8365 !SoC commit

  • thermal/drivers/rockchip: Support RK3588 !SoC in the thermal driver commit

  • thermal: intel: menlow: Get rid of this driver commit

11.31. Media

11.33. LED SUBSYSTEM

11.34. Various

12. List of Pull Requests

13. Other new sites

KernelNewbies: LinuxChanges (last edited 2023-08-24 19:29:46 by diegocalleja)