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.7 was released on Sunday, 7 January 2024.

Summary: This release includes bcachefs, a new filesystem that implements the same kind of modern features you can expect from Btrfs and ZFS; it also includes the first pieces of the future futex2 system call; support in Btrfs for a RAID stripe tree that will be used to implement some future new features; suport in BPF for exceptions and other features; support for io_uring features such as multishot reads, cancelable uring_cmd, support for {s,g}etsockopt commands and other things; support for TCP Authentication Option; and allow disabling x86 32 bit emulation. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Bcachefs, a new modern file system

This release includes bcachefs, a new modern file systems that aims to provide the kind of modern features that you can find in ZFS/Btrfs (copy on write model, full checksumming, multivolume management, snapshots, compression, encryption, etc). For more details see https://bcachefs.org/

1.2. First pieces of futex2

The futex(2) ("fast userspace mutex") system call has a number of limitations. This system call has incorporated too much funcionality over the years; in order to avoid the dreaded "multiplexed syscall" pattern (one single system call doing many things), it has been decided to incorporate multiple calls (futex_wait, futex_wake, futex_requeue). This release adds the first pieces of these new system calls - the complete feature set will be added in future releases.

Recommended LWN article: A new futex API

1.3. Btrfs stripe tree and other improvements

This release introduces the RAID stripe tree, a new tree for logical file extent mapping where the physical mapping may not match on multiple devices. This is now used in zoned mode to implement RAID0/RAID1* profiles, but can be used in non-zoned mode as well. The support for RAID56 is in development and will eventually fix the problems with the current implementation.

This release also includes support for temporary filesystem ID and simple quota accounting.

Recommended read: Design document

1.4. BPF exceptions and other features

As usual, BPF incorporates a few new features, one of them being BPF exceptions, which allow a BPF program testing conditions that are always true at runtime but which the verifier has no visibility into, and then quitting and unwinding safely.

Recommended LWN article: Exceptions in BPF

1.5. io_uring improvements

This release includes as number of improvements to the io_uring interface

  • Multishot reads
  • Cancelable uring_cmd
  • Initial support for {s,g}etsockopt commands

  • An async version of waitid(2)
  • Add support for using futexes through io_uring - first futex wake and wait, and then the vectored variant of waiting, futex waitv

1.6. Support for TCP Authentication Option

This release adds support for TCP Authentication Option (RFC5925). The TCP Authentication Option (TCP-AO) provides a TCP extension aimed at verifying segments between trusted peers. It adds a new TCP header option with a Message Authentication Code (MAC). MACs are produced from the content of a TCP segment using a hashing function with a password known to both peers. The intent of TCP-AO is to deprecate TCP-MD5 providing better security, key rotation and support for variety of hashing algorithms.

Recommended read: Documentation, RFC 5925

1.7. Allow disabling x86 32 bit emulation

x86-64 processors support running 32 bit software. In order to allow running that software under Linux, the kernel provides 32-bit syscalls. Some distributions would like to disable this layer in order to reduce their attack surface as much as possible but at the same time they'd want to retain flexibility to cater to a variety of legacy software. In order to suppor this case, this release allows to enable/disable this feature at boot time.

2. Core

3. Memory Management

4. File systems

4.1. bcachefs

4.2. Btrfs

4.3. Ceph

4.4. CIFS

  • Allow dumping session and tcon id to improve stats analysis and debugging commit

4.5. EFI VARIABLE FILESYSTEM

  • Add uid/gid mount options commit

4.6. exFAT

  • Add ioctls for accessing attributes commit

  • Support handle zero-size directory commit

4.7. F2FS

  • Set the default compress_level on ioctl commit

  • Add 16K Support for f2fs commit

4.8. FSCRYPT

4.9. GFS2

4.10. Autofs

4.11. KSMBD

  • ksmbd: add support for surrogate pair conversion commit

4.12. OVERLAY

4.13. XFS

4.14. ext2

4.15. NFS

5. Block layer

6. Security

  • hardening: Provide a dedicated Kconfig fragments for basic options commit

  • AppArmor

    • Add user namespace creation mediation commit

    • Allow restricting unprivileged change_profile commit

    • Add io_uring mediation commit

  • landlock
  • configfs-tsm: Attestation Report ABI. The current momentum has been to invent new ioctl-ABI per TSM per function which at best is an abdication of the kernel's responsibility to make common infrastructure concepts share common ABI. This proposal, targeted to conceptually work with TDX, SEV-SNP, COVE if not more, is to define a configfs interface to retrieve the TSM-specific blob commit, commit, commit, commit, commit, commit, commit

7. Cryptography

8. Virtualization

9. Tracing, probing and BPF

10. Networking

11. Architectures

11.1. IA64

11.2. ARM

11.3. x86

11.4. S390

11.5. SUPERH

11.6. PowerPC

11.7. LoongArch

11.8. PA-RISC

  • Allow building uncompressed Linux kernel commit

11.9. MIPS

11.10. RISC-V

11.11. SYNOPSYS ARC ARCHITECTURE

12. Drivers

12.1. Graphics

12.2. Networking drivers

12.3. Storage

12.4. Sound

12.5. USB

12.6. TTY layer and serial drivers

12.7. Staging area

12.8. Media devices (V4L/DVB)

12.9. Thermal

12.10. Watchdog

  • it87_wdt: add IT8613 ID commit

12.11. Voltage and current regulator

12.12. MULTIFUNCTION DEVICES (MFD)

12.13. MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM

  • hsq: Improve random I/O write performance for 4k buffers commit

  • add NPCM SDHCI driver support commit, commit

12.14. NFC SUBSYSTEM

12.15. PCI

12.16. PIN CONTROL SUBSYSTEM

12.17. MEMORY TECHNOLOGY DEVICES (MTD)

12.18. POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS

12.19. REAL TIME CLOCK (RTC)

12.20. HARDWARE MONITORING

  • nct6683: Add another customer ID for ASRock X670E Taichi commit

  • pmbus/mpq7932: Add a support for mpq2286 Power Management IC commit

  • Add driver for ltc2991 commit

12.21. I2C

  • stm32f7: Add atomic_xfer method to driver commit

  • i801: Add support for Intel Birch Stream SoC commit

12.22. IIO

12.23. INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS

12.24. LED

12.25. HWMON

  • Add ti,ina237 support to ina238 driver commit, commit

  • ina3221: Add selective summation support commit, commit, commit, commit

  • asus-ec-sensors: add ROG Crosshair X670E Gene. commit

  • adt7475: Add support for Imon readout on ADT7490 commit

  • Add POWER-Z driver commit

  • powerz: add support for ChargerLAB KM002C commit

12.26. REMOTE PROCESSOR (REMOTEPROC)

12.27. DMA GENERIC OFFLOAD ENGINE

  • Add Intel Analytics Accelerator (IAA) crypto compression driver commit

  • xdma: Cyclic transfers support commit, commit, commit

12.29. COUNTER SUBSYSTEM

12.30. CPU FREQUENCY SCALING FRAMEWORK

  • qcom-nvmem: add support for IPQ8074 commit

  • qcom-nvmem: Enable cpufreq for ipq53xx commit

  • mediatek: Add support for MT8365 commit

  • Add basic cpufreq scaling for Qualcomm MSM8909 commit, commit, commit

  • qcom-nvmem: add support for IPQ6018 commit, commit

12.31. COMMON CLK FRAMEWORK

12.32. SYSTEM CONTROL & POWER/MANAGEMENT INTERFACE (SCPI/SCMI) Message Protocol drivers

  • Add qcom smc/hvc transport support commit, commit

  • arm_scmi: Add support for clock parents commit

12.33. IOMMU SUBSYSTEM

12.34. DRM COMPUTE ACCELERATORS

12.35. Various

13. Pull requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2024-02-17 11:47:48 by diegocalleja)