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.5 was released on Sunday, August 27 2023.

Summary: This release includes initial USB4 v2 support; support for moving a mount beneath the top mount; a new cachestat(2) system call to get the cache state of files; support for unaccepted memory in virtualized guests; initial support for Scope-based Resource Management and other compiler improvements; memfd_secret(2) has been enabled by default; and support for MIDI 2.0. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Allow to move mounts beneath top mount

Some modern Linux distributions distribute packages in a way that there is a base distro layer with the usual Linux directories such as /etc or /usr, then users can install packages that provide a "layer" that incorporates content to these directories.

Updating one of those packages require incorporating a new mount to user processes, and removing the old. This can be done but it's currently too complex and has some limitations. This release exposes the ability to add a mount beneath the topmost mount of a mount stack through the new MOVE_MOUNT_BENEATH flag for the move_mount(2) system call, then the old mount can be unmounted, and users get either the old or the new mount, but never the ones below. This allows userspace to seamlessly upgrade mounts.

For more details, see this LWN article, or this one

Also, see the merge commit explanation this commit or

1.2. New cachestat(2) system call to get the cache state of files

The only way to query the page cache state of large file sets and directory trees is currently mincore(2), but it scales poorly. Yet, this information could come in handy: A database could decide whether to perform an index scan or direct table queries based on the in-memory cache state of the index. Performance issues of the writeback algorithms and tuning could be diagnosed. IO fulfilled by page cache (and IO to be done) within a range of a file could be estimated, allowing for more frequent syncing when and where there is IO capacity, and batching when there is not

This release includes a cachestat system call that queries cache state of a file and summarizes the number of cached pages, number of dirty pages, number of pages marked for writeback, number of (recently) evicted pages, etc. in a given range.

Recommended LWN article: Checking page-cache status with cachestat()

1.3. Support for unaccepted memory

UEFI Specification version 2.9 introduces the concept of memory acceptance: some Virtual Machine platforms, such as Intel TDX or AMD SEV-SNP, requiring memory to be accepted before it can be used by the guest. Accepting happens via a protocol specific for the Virtual Machine platform. This release adds support for it.

Recommended LWN article: Seeking an acceptable unaccepted memory policy

1.4. Initial support for Scope-based Resource Management and other compiler improvements

This release adds the infrastructure necessary to incorporate some compiler extensions that help to automatically run functions on a variable when its type goes out of scope, which can help to reduce bugs.

There is also initial support for the __counted_by macro, which will allow to provide runtime memory bound checking on flexible arrays, and -fstrict-flex-arrays=3 is enabled by default, which instructs the compiler to treat only C99 flexible arrays as dynamically sized for the purposes of object size calculation.

Recommended LWN article: Scope-based resource management for the kernel

1.5. Enable secret memory by default

Secret memory and its memfd_secret(2) system call was incorporated in Linux 5.14. It allows to created a special memfd file descriptor whose contents will only be readable by its creator and not any other process, not even root processes or the kernel itself. It can be used to store private keys more securely, for example.

Due to concerns about the way it deals with memory management it was disabled by default, and enabled with a parameter. These concerns are not important anymore and the feature can be enabled by default.

1.6. Initial USB4 v2 support

This release adds initial support for the next USB4 version (USB4 v2) and the Intel Barlow Ridge discrete controller. It includes support for the 80G symmetric link, the necessary configuration needed to bring up the router in v2 mode, adaptive TMU, PCIe extended encapsulation, and CL2 low power link state. Other releases will include the rest of the USB4 v2 support, including asymmetric 128/80G link support.

1.7. MIDI 2.0 support

This release adds support for the 2.0 version of the popular MIDI format. MIDI 2.0 is a complete overhaul of the 40-years old MIDI 1.0. Unlike MIDI 1.0 byte stream, MIDI 2.0 uses packets in 32bit words for Universal MIDI Packet (UMP) protocol It supports both MIDI 1.0 commands for compatibility and the extended MIDI 2.0 commands for higher resolutions and more functions

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Cryptography

9. Security

  • fsverity
    • Use shash API instead of ahash API commit

    • improve documentation for builtin signature support commit

  • selinux: deprecated fs ocon commit

10. Networking

11. Architectures

11.1. ARM

11.2. X86

11.3. RISCV

11.4. LOONGARCH

11.5. POWERPC

11.6. S390

11.7. MIPS

  • uaccess: emulate Ingenic LXW/LXH/LXHU uaccess commit

  • ralink: Add support for TP-Link HC220 G5 v1 board commit, commit

11.8. PARISC

  • Add cacheflush() syscall commit

12. Drivers

12.1. Graphics

12.2. Power Management

  • thermal
    • Allow selecting the bang-bang governor as default commit

    • intel: int340x_thermal: New IOCTLs for Passive v2 table commit

    • qcom/tsens-v0_1: Add support for MSM8226 commit

    • qcom/tsens-v0_1: Add MSM8909 data commit

    • armada: Add support for AP807 thermal data commit

  • Enable MSM8226 TSENS support commit, commit, commit, commit, commit

12.3. Storage

12.4. Drivers in the Staging area

12.5. Networking

12.6. Audio

12.7. Tablets, touch screens, keyboards, mouses

  • uinput: allow injecting event times commit

  • pwm-vibra: add support for enable GPIO commit

  • atmel_mxt_ts: support capacitive keys commit

  • HID
    • nvidia-shield: Initial driver implementation with Thunderstrike support commit, commit, commit

    • logitech-hidpp: Add wired USB id for Logitech G502 Lightspeed commit

    • asus: Add support for ASUS ROG Z13 keyboard commit

    • asus: add keycodes for 0x6a, 0x4b, and 0xc7 commit

    • microsoft: Add rumble support to latest xbox controllers commit

    • i2c-hid: goodix: Add support for "goodix, no-reset-during-suspend" property commit

    • logitech-hidpp: Add USB and Bluetooth IDs for the Logitech G915 TKL Keyboard commit

    • apple: Option to swap only left side mod keys commit

    • intel-ish-hid: ipc: Add Arrow Lake PCI device ID commit

12.8. TV tuners, webcams, video capturers

12.9. Universal Serial Bus

12.10. Serial Peripheral Interface (SPI)

12.11. Watchdog

  • sp5100_tco: support Hygon FCH/SCH (Server Controller Hub) commit

  • xilinx_wwdt: Add Versal window watchdog support commit

12.12. CPU Frequency scaling

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

  • supply: axp20x_usb_power: Add support for AXP192 commit

  • reset: qcom-pon: add support for pm8941-pon commit

  • supply: add Qualcomm PMI8998 SMB2 Charger driver commit

  • regulator
    • Add Renesas PMIC RAA215300 driver commit

    • Add support for TI TPS6287x regulators commit

    • axp20x: Add AXP15060 support commit

    • axp20x: Add support for AXP313a variant commit

    • max77541: Add ADI MAX77541/MAX77540 Regulator Support commit

    • rk808: add rk806 support commit

    • tps6594-Add driver for TI TPS6594 regulators commit

12.14. Real Time Clock (RTC)

  • Add rtc driver for the Loongson family chips commit

  • isl1208: Add support for the built-in RTC on the PMIC RAA215300 commit

  • Remove the Loongson-1 RTC driver commit

12.15. Pin Controllers (pinctrl)

  • at91-pio4: Enable Push-Pull configuration commit

  • axp209: Add support for GPIO3 on the AXP209 commit

  • intel: Add Intel Meteor Lake-S pin controller support commit

  • qcom: Add IPQ5018 pinctrl driver commit

  • qcom: Add SDX75 pincontrol driver commit

  • qcom: spmi-gpio: Add PM8953 support commit

  • rk805: Add rk806 pinctrl support commit

  • stm32: add stm32mp257 pinctrl support commit

  • tegra: Add Tegra234 pinmux driver commit

12.16. Multi Media Card (MMC)

12.17. Memory Technology Devices (MTD)

  • spinand: gigadevice: add support for GD5F2GQ5xExxH commit

  • spinand: macronix: Add support for serial NAND flash commit

  • rawnand: add basic sandisk manufacturer ops commit

  • rawnand: add support for the Sandisk SDTNQGAMA chip commit

12.18. Industrial I/O (iio)

  • adc: max77541: Add ADI MAX77541 ADC Support commit

  • adc: rockchip_saradc: Add support for RK3588 commit

  • imu: mpu6050: Add support for the ICM 20600 IMU commit

  • light: Add support for TI OPT4001 light sensor commit

  • light: ROHM BU27008 color sensor commit

  • magnetometer: st_accel: Add LSM303D commit

  • mlx90614: Add MLX90615 support commit

  • potentiometer: Add support for the Renesas X9250 potentiometers commit

  • pressure: Honeywell mprls0025pa pressure sensor commit

  • st_sensors: Add ACPI support for lsm303d to the LSM9DS0 IMU driver commit

  • st_sensors: Add lsm303d support to the LSM9DS0 IMU driver commit

12.19. Multi Function Devices (MFD)

  • axp20x: Add support for AXP192 commit

  • axp20x: Add support for AXP313a PMIC commit

  • max77541: Add ADI MAX77541/MAX77540 PMIC Support commit

  • rk8xx: Add rk806 support commit

  • tps65219: Add support for soft shutdown via sys-off API commit

12.20. Pulse-Width Modulation (PWM)

  • mediatek: Add support for MT7981 commit

  • Add Renesas RZ/G2L MTU3a PWM driver commit

  • Add microchip soft ip corePWM driver commit

12.21. Inter-Integrated Circuit (I2C + I3C)

  • i801: Add support for Intel Meteor Lake SoC-S commit

  • i801: Add support for Intel Meteor Lake PCH-S commit

  • designware: Add driver support for Wangxun 10Gb NIC commit

12.22. Hardware monitoring (hwmon)

  • corsair-psu: update Series 2022 and 2023 support commit

  • Add MAX31827 driver commit

  • Add HP WMI Sensors driver commit

  • aht10: Add support for compatible aht20 commit

  • aquacomputer_d5next: Add support for Aquacomputer Leakshield commit

  • asus-ec-sensors: add ROG Crosshair X670E Hero commit

  • corsair-psu: add support for reading PWM values and mode commit

  • it87: Add support for 4 fans chips commit, commit, commit

  • it87: Allow for chips with only 4 temp sensors commit

  • nct6683: Add another customer ID for NCT6687D sensor chip on some MSI boards commit

  • nct6755: Add support for NCT6799D commit

  • oxp-sensors: Add AYANEO 2 and Geek models commit

  • oxp-sensors: Add new DMI match for OXP Mini commit

  • oxp-sensors: Add support for AOKZOE A1 PRO commit

  • oxp-sensors: Add tt_toggle attribute on supported boards commit

  • pmbus/max16601: Add support for new revisions of MAX16508 commit

  • sht3x: Add new non-stardard sysfs attribute commit

  • sht3x: add medium repeatability support commit

  • sht3x: complement sysfs interface for sts3x commit

12.23. General Purpose I/O (gpio)

  • aggregator: Support delay for setting up individual GPIOs commit

  • Add gpio delay driver commit

  • tps65219: add GPIO support for TPS65219 PMIC commit

  • mlxbf3: Add gpio driver support commit

12.24. Leds

12.25. DMA engines

  • ti: k3-udma: Add support for J721S2 CSI BCDMA instance commit

  • dw-edma: Add HDMA DebugFS support commit

  • dw-edma: Add support for native HDMA commit

12.26. Cryptography hardware acceleration

  • ccp: Add support for PCI device 0x156E commit

  • ccp: Add support for PCI device 0x17E0 commit

  • octeontx2: add support for AF to CPT PF uplink mbox commit

  • starfive: Add drivers for crypto engine commit, commit, commit

  • starfive: Add RSA algo to drivers commit, commit

12.27. PCI

12.28. Clock

12.29. PHY ("physical layer" framework)

12.30. EDAC (Error Detection And Correction)

  • amd64: Add support for ECC on family 19h model 60h-7Fh commit

  • amd64: Add support for AMD heterogeneous Family 19h Model 30h-3Fh commit

  • npcm: Add NPCM memory controller driver commit

12.31. Various

13. Pull requests

13.1. Other new sources

KernelNewbies: LinuxChanges (last edited 2023-10-02 20:57:57 by diegocalleja)