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.2 has been released on Sunday, 19 Feb 2023.

Summary: This release includes faster mitigration of the Retbleed vulnerability and a new FineIBT mitigation feature; Btrfs RAID5/6 and performance improvements, sysfs knobs that allow controlling block device writeback, support for TCP Protective Load Balancing, improved Rust support, BPF features like User defined objects, the runtime verification tool, and some optional RCU power savings. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Faster mitigation of the Retbleed CPU vulnerability, and FineIBT

The Retbleed vulnerability can be fixed with the help of some mitigation techniques. The techniques used until now, however, have a considerable impact on performance. This release implements a new mitigation scheme, a lighterweight software-only fix for Skylake-based cores where enabling IBRS is a big hammer and causes a significant performance impact. This new method can be enabled with the boot option retbleed=stuff

Recommended LWN article: Stuffing the return stack buffer

This release also adds FineIBT (another mitigation feature), a new control flow integrity scheme which is based on the software kCFI implementation and uses hardware IBT support where present to annotate and track indirect branches using a hash to validate them.

1.2. Btrfs RAID5/6 and performance improvements

This release adds some reliability improvements for the Btrfs RAID5/6 implementation, some performance improvements for btrfs send, lseek and the FIEMAP ioctl, and automatic enablement of asynchronous discard when possible.

1.3. Better control of block device writeback

Writeback (the act of writing modified file data in the background) can sometimes take too much memory. For some kind of block devices, like networking block devices or even USB drives, it can too much. This release adds five new sysfs knobs (strict_limit, min_bytes, max_bytes, min_ratio_fine, max_ratio_fine) under each bdi (block device interface) at /sys/class/bdi/ that allow a finer grained control of the writeback mechanism. For more details read the documentation

1.4. Add support for TCP Protective Load Balancing

PLB (Protective Load Balancing) has been designed to reduce link load imbalance across datacenter switches. It is a host-based optimization; it leverages congestion signals (e.g. ECN) from the transport layer to randomly change the path of the connection experiencing congestion. PLB prefers to repath after idle periods to minimize packet reordering. It repaths by changing the IPv6 Flow Label on the packets of a connection. It can currently only work for IPv6 traffic. For more information, see the SIGCOMM 2022 paper

1.5. BPF features: User defined objects

This release adds support for user defined BPF objects: the use case is to allocate own objects, build own object hierarchies and use the building blocks to build own data structures flexibly, for example, linked lists in BPF

There are other BPF features, like adding bpf_rcu_read_{,un}lock() support for sleepable programs, or support storing struct task_struct objects as kptrs in maps.

1.6. The runtime verification tool

The Runtime Verification System, merged on Linux 6.0, is a lightweight (yet rigorous) method that complements classical exhaustive verification techniques (such as model checking and theorem proving) with a more practical approach for complex systems.

This release includes the rv runtime verification tool named. It aims to be the interface for in-kernel rv monitors, as well as the home for user-space controlled monitors

Documentation

1.7. Improved Rust support

Following the initial support in the previous release, this release includes several new features. This release improves support for string and formatting, errors, printing, memory allocation, macros, new vocabulary types and debugging.

1.8. Some optional power savings due to improved RCU locking

RCU, a locking technique, has implemented a timer-based RCU callback batching (also known as lazy callbacks), which saves about 5-10% of power consumed in ANdroid/ChromeOS devices due to RCU requests that happen when system is lightly loaded or idle (behind a Kconfig, defaults to off)

2. Core (various)

3. File systems

  • BTRFS
  • F2FS
    • Allow to set compression for inlined file commit

    • Add barrier mount option commit

    • Introduce max_ordered_discard sysfs node commit

    • Aadd proc entry to show discard_plist info commit

    • Introduce gc_mode sysfs node commit

    • Introduce F2FS_IOC_START_ATOMIC_REPLACE commit

    • Introduce discard_urgent_util sysfs node commit

    • Add block_age-based extent cache commit

  • XFS
  • NTFS3
    • Add hidedotfiles option commit

    • Add option "nocase" commit

    • Add windows_names mount option commit

    • Add system.ntfs_attrib_be extended attribute commit

  • SQUASHFS
  • EROFS
    • Enable large folios for iomap mode commit

    • Support large folios for fscache mode commit, commit

  • FUSE
    • Add "expire only" mode to FUSE_NOTIFY_INVAL_ENTRY commit

    • Allow non-extending parallel direct writes on the same file commit

  • NFS
    • Add support for CB_RECALL_ANY. NFSD can send this operation to request that clients return any delegations they choose. The server uses this operation to handle low memory scenarios or indicate to a client when that client has reached the maximum number of delegations the server supports commit, commit, commit

  • PSTORE
    • Expose kmsg_bytes as a module parameter commit

  • EXFAT
    • Avoid repeated traversal of directory entries, reduce CPU usage, and improves the performance of creating files and directories commit

  • KSMBD
    • Add max connections parameter commit

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

  • Connect VFIO to IOMMUFD commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • hv_balloon: Add support for configurable order free page reporting commit

  • Add TDX Guest Attestation support. TDX guest driver exposes IOCTL interfaces to service TDX guest user-specific requests. Currently, it is only used to allow the user to get the TDREPORT to support TDX attestation. Details about the TDX attestation process are documented in Documentation/x86/tdx.rst, and the IOCTL details are documented in Documentation/virt/coco/tdx-guest.rst commit

  • virtio_console: Introduce an ID allocator for virtual console numbers commit

8. Cryptography

  • af_alg: Support symmetric encryption via keyring keys commit

  • testmgr: add SM4 cts-cbc/xts/xcbc test vectors commit

9. Security

  • Use EFI variables for random seed commit, commit, commit, commit, commit

  • apparmor
    • Add mediation class information to auditing commit

    • Add user mode flag commit

    • Expose compression level limits in sysfs commit

    • Extend permissions to support a label and tag string commit

    • Use zstd compression for profile data commit

  • landlock: truncate support. A new LANDLOCK_ACCESS_FS_TRUNCATE access right covers both the truncate(2) and ftruncate(2) families of syscalls, as well as open(2) with the O_TRUNC flag. This includes usages of creat() in the case where existing regular files are overwritten commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

10. Networking

11. Architectures

11.1. ARM

11.2. X86

11.3. POWERPC

11.4. LOONGARCH

11.5. RISCV

11.6. S390

11.7. MICROBLAZE

  • Remove support for Xilinx PCI host bridge commit

12. Drivers

12.1. Graphics

12.2. Power Management

  • EFI
  • ACPI: Implement FFH OpRegion support commit, commit, commit

  • cpupower: Introduce powercap userspace frontend commit, commit

  • thermal
    • tsens: Add IPQ8074 support commit

    • imx8mm: Add hwmon support commit

    • intel_tcc_cooling: Add TCC cooling support for RaptorLake-S commit

12.3. Storage

12.4. Drivers in the Staging area

  • atmel: atmel-isc: move to staging commit, commit

  • cedrus: h265: Support decoding 10-bit frames commit, commit

  • imx: Unstage the imx7-media-csi driver commit

  • imx: imx7-media-csi: Add support for fast-tracking queued buffers commit

  • Add support for the Allwinner A31 ISP commit

12.5. Networking

12.6. Audio

12.7. Tablets, touch screens, keyboards, mouses

12.8. TV tuners, webcams, video capturers

12.9. Universal Serial Bus

  • fotg210-udc: Support optional external PHY commit

  • fotg2: add Gemini-specific handling commit

  • misc: onboard_usb_hub: add Genesys Logic GL850G hub support commit

  • phy: jz4770: Remove driver commit

  • phy: phy-gpio-vbus-usb: Add device tree probing commit

  • serial: cp210x: add Kamstrup RF sniffer PIDs commit

  • serial: option: add Quectel EM05-G modem commit

  • musb: remove unused davinci support commit

  • sisusbvga: remove console support commit

  • serial: option: add Quectel EM05-G (CS) modem commit

  • serial: option: add Quectel EM05-G (GR) modem commit

  • serial: option: add Quectel EM05-G (RS) modem commit

  • serial: option: add Quectel EC200U modem commit

  • erial: cp210x: add SCALANCE LPE-9000 device id commit

  • serial: option: add Quectel EM05CN (SG) modem commit

  • serial: option: add Quectel EM05CN modem commit

12.10. Serial Peripheral Interface (SPI)

  • intel: Add support for SFDP opcode commit

  • microchip: pci1xxxx: Add driver for SPI controller of PCI1XXXX PCIe switch commit

  • mtk-snfi: Add snfi support for MT7986 IC commit

  • spi-fsl-lpsupport multiple cs for lpspi commit

  • spi-zyqnmp-gqAdd tap delay and Versal platform support commit, commit, commit, commit, commit, commit, commit

  • wpcm-fiu: Add driver for Nuvoton WPCM450 Flash Interface Unit (FIU) commit

12.11. Watchdog

  • mediatek: mt8188: add wdt support commit

  • mtk_wdt: Add support for MT6795 Helio X10 watchdog and toprgu commit

  • Add Advantech EC watchdog driver commit

12.12. Serial

  • 8250/ingenic: Add support for the JZ4750/JZ4755 commit

  • 8250: 8250_omap: Support native RS485 commit

  • n_gsm: add parameter negotiation support commit

  • n_gsm: add parameters used with parameter negotiation commit

  • serial: fsl_lpuart: Add runtime pm support commit

  • serial: qcom-geni-serial: Add support for Hibernation feature commit

  • serial: exar: Add support for Sealevel 7xxxC serial cards commit

12.13. CPU Frequency scaling

  • ti-cpufreq: Add support for AM625 commit

  • qcom-hw: Add CPU clock provider support commit

  • apple-soc: Add new driver to control Apple SoC CPU P-states commit

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

  • power: supply: bq25890: Add support for setting user charge current and voltage limit commit

  • power: supply: bq25890: Add Vsys regulator commit

  • regulator
    • qcom-rpmh: Add support for PM8550 regulators commit

    • Add mt6357 regulator commit

    • rt6190: Add support for Richtek RT6190 regulator commit

    • qcom_smd: Add PMR735a regulators commit

12.15. Real Time Clock (RTC)

  • isl12022: add support for temperature sensor commit

  • Remove davinci rtc driver commit

12.16. Pin Controllers (pinctrl)

  • pinctrl-loongson2: add pinctrl driver support commit

  • at91-pio4: Add configuration to userspace commit

  • qcom: add sdm670 pinctrl commit

  • intel: Add Intel Moorefield pin controller support commit

  • mediatek: add pull_type attribute for mediatek MT7986 SoC commit

12.17. Multi Media Card (MMC)

  • Add mmc driver for Sunplus SP7021 commit

  • f-sdh30: Add reset control support commit

  • f-sdh30: Add support for non-removable media commit

  • mediatek: add support for MT7986 SoC commit

  • mtk-sd: add Inline Crypto Engine clock control commit

  • sdhci-of-arasan: Add support for dynamic configuration commit

  • sdhci-tegra: Add support to program MC stream ID commit

12.18. Memory Technology Devices (MTD)

  • Set ROOT_DEV for partitions marked as rootfs in DT commit

  • parsers: add TP-Link SafeLoader partitions table parser commit

  • spi-nor: Add flash device reset support commit

  • spi-nor: add generic flash driver commit

  • spi-nor: winbond: add support for W25Q512NW-IQ commit

  • spinand: winbond: add Winbond W25N02KV flash support commit

  • Remove lart flash driver commit

12.19. Industrial I/O (iio)

  • accel: Add support for ADXL359 device commit

  • accel: Support Kionix/ROHM KX022A accelerometer commit

  • adc: ad4130: add AD4130 driver commit

  • adc: add max11410 adc driver commit

  • adc: mcp3911: add support to set PGA commit

  • adc: mt6370: Add MediaTek MT6370 support commit

  • adc: stm32-adc: add debugfs to read raw calibration result commit

  • adc: stm32-adc: add stm32mp13 support commit

  • adc: stm32-adc: smart calibration support commit

  • addac: add AD74115 driver commit

  • frequency: adf4377: add support for ADF4377 commit

  • imu: inv_icm42600: Add support for icm42631 commit

  • imu: st_lsm6dsx
    • Add support to ISM330IS commit

    • Add support to LSM6DSO16IS commit

    • Add support to LSM6DSV commit

    • Add support to LSM6DSV16X commit

    • Introduce sw trigger support commit

  • pressure: mpl115: Implementing low power mode by shutdown gpio commit

  • proximity: sx9360: Add a new ACPI hardware ID commit

  • temperature: Add driver support for Maxim MAX30208 commit

  • temperature: ltc2983: support more parts commit

12.20. Multi Function Devices (MFD)

  • Add Ampere's Altra SMpro MFD driver commit

  • palmas: Add support of module build for Ti palmas chip commit

  • tps65219: Add driver for TI TPS65219 PMIC commit

  • Remove davinci voicecodec driver commit

  • Remove dm355evm_msp driver commit

  • Remove htc-i2cpld driver commit

12.21. Pulse-Width Modulation (PWM)

  • mediatek: Add support for MT7986 commit

12.22. Inter-Integrated Circuit (I2C + I3C)

12.23. Hardware monitoring (hwmon)

  • aquacomputer_d5next: Add support for Quadro flow sensor pulses commit

  • aquacomputer_d5next: Add support for temperature sensor offsets commit

  • coretemp: Add support for dynamic tjmax/ttarget commit, commit, commit

  • hwmon: Add Ampere's Altra smpro-hwmon driver commit

  • hwmon: add OneXPlayer mini AMD sensors driver commit

  • it87: Add param to ignore ACPI resource conflicts commit

  • nct6775: add ASUS CROSSHAIR VIII/TUF/ProArt B550M commit

  • oxp-sensors: Add AOK ZOE and Mini PRO commit

  • pmbus: Add power good support commit

  • pmbus/ltc2978: add support for LTC7132 commit

12.24. General Purpose I/O (gpio)

12.25. DMA engines

  • JZ4780: Add support for the JZ4755 commit

  • Remove iop-adma driver commit

  • tegra: Add support for dma-channel-mask commit

12.26. Hardware Random Number Generator (hwrng)

  • mtk: add mt7986 support commit

  • npcm: Add NPCM8XX support commit

12.27. Cryptography hardware acceleration

  • ccp: Add support for TEE for PCI ID 0x14CA commit

  • inside-secure: Add Support for MaxLinear Platform commit, commit, commit

  • qat: enable deflate for QAT GEN4 commit

  • rockchip: Add support for RK3399 commit

  • rockchip: add support for rk3328 commit

  • rockchip: add debugfs commit

  • rockchip: introduce PM commit

  • stm32/cryp: enable for use with Ux500 commit

  • ux500/cryp: delete driver commit

12.28. PCI

12.29. Clock

  • Add Ingenic JZ4755 CGU driver commit

  • clocksource: hyper-v: Add TSC page support for root partition commit

  • mediatek: Add new clock driver to handle FHCTL hardware commit

  • mstar: msc313 cpupll clk driver commit

  • qcom: Add GCC driver for SM8550 commit

  • qcom: Add SC8280XP display clock controller commit

  • qcom: Add display clock controller driver for SM6375 commit

  • qcom: Add support for QDU1000 and QRU1000 RPMh clocks commit

  • qcom: rpmh: add support for SM6350 rpmh IPA clock commit

  • renesas: r8a779g0: Add Z0 clock support commit

  • rockchip: add clock controller for the RK3588 commit

12.30. PHY ("physical layer" framework)

12.31. EDAC (Error Detection And Correction)

  • mc_sysfs: Increase legacy channel support to 12 commit

12.32. Various

13. List of Pull Requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2023-02-20 18:31:43 by diegocalleja)