KernelNewbies : Last updated at 2023年11月03日 06:34:18

Linux 6.6 has been released on Sunday, 29 Oct 2023.

Summary: This release replaces the CFS process scheduler with a new one called EEVDF, which should provide better latency in general; support for x86 shadow stacks to prevent exploits; support for fs-verity in overlayfs; quotas and xattrs support in tmpfs; more configurable unbound workqueues; faster asynchronous Direct I/O using io_uring; and the first pieces of the XFS online fsck. As always, there are many other features, new drivers, improvements and fixes.

Contents

  1. Prominent features
    1. New task scheduler: EEVDF
    2. Shadow stacks to prevent exploits
    3. Support for fs-verity in overlayfs
    4. Quotas and xattrs support in tmpfs
    5. More configurable unbound workqueues
    6. Faster asynchronous Direct I/O using io_uring
    7. First pieces of XFS online fsck
  2. Core (various)
  3. File systems
    1. Btrfs
    2. OverlayFS
    3. XFS
    4. ext4
    5. Ceph
    6. FUSE
    7. GFS2
    8. EROFS
    9. KSMBD
    10. NFS
    11. TMPFS
  4. Memory management
  5. Block layer
  6. BPF
  7. Tracing, perf
  8. Virtualization
  9. Cryptography
  10. Security
  11. Networking
  12. Architectures
    1. ARM
    2. x86
    3. DMA engines
    4. LoongArch
    5. RISC-V
    6. PowerPC
    7. PA-RISC
    8. S390
  13. Drivers
    1. Graphics
    2. Storage
    3. Drivers in the Staging area
    4. Bluetooth
    5. Networking
    6. Audio
    7. Tablets, touch screens, keyboards, mouses
    8. TV tuners, webcams, video capturers
    9. Serial Peripheral Interface (SPI)
    10. Serial
    11. Voltage, current regulators, power capping, power supply
    12. Watchdog
    13. Real Time Clock (RTC)
    14. FRU Support Interface (FSI)
    15. Clock
    16. Multi Media Card (MMC)
    17. Hardware monitoring (hwmon)
    18. Inter-Integrated Circuit (I2C + I3C)
    19. Industrial I/O (iio)
    20. General Purpose I/O (gpio)
    21. Cryptography hardware acceleration
    22. Leds
    23. PHY ("physical layer" framework)
    24. PCI
    25. Universal Serial Bus
    26. IOMMU
    27. Pin Controllers (pinctrl)
    28. Power Management
    29. Memory Technology Devices (MTD)
    30. Various
  14. List of Pull Requests
  15. Other news sites

1. Prominent features

1.1. New task scheduler: EEVDF

The task scheduler is the part of the kernel that decides which task should be run next when there are many to pick, its role is critical to achieve good performance and latency. The previous algorithm, called CFS, was merged in Linux 2.6.23. In this release, it is replaced by code that uses a new algorithm, called EEVDF ("Earliest Eligible Virtual Deadline First").

This algorithm is designed to ensure that processes that are not getting the attention they should are automatically picked the next time, while processes that got more than they deserved are "punished". This is done in a clean, algorithmic way, where as CFS used heuristics and tunable knobs to attempt to guess which processes needed more attention. Many of these tunables have been removed. For these reasons, this new scheduler should improve the latency of tasks that would be left behind by CFS while leting other tasks be routinely over-scheduled. For more details, read the LWN article.

Recommended LWN article: An EEVDF CPU scheduler for Linux

Recommended paper: Earliest Eligible Virtual Deadline First : A Flexible and Accurate Mechanism for Proportional Share Resource Allocation

1.2. Shadow stacks to prevent exploits

After many years of discussions, the Linux kernel has finally add support for Intel's shadow stack hardware feature. Shadow stack works by maintaining a secondary (shadow) stack that cannot be directly modified. When managing the stack, the processor pushes the return address to both the normal stack and to the special permissioned shadow stack. Upon return, the processor pops the shadow stack copy and compares it to the normal stack copy. If the two differ, the processor raises a control protection fault, which can prevent exploits that were attempting to modify the stack. This implementation supports shadow stack on 64 bit kernels only, with support for 32 bit only via IA32 emulation, and only for userspace.

This release also adds support for Clang's control-flow integrity scheme and randomization of the place where the kernel image is placed on boot in the RISC-V architecture.

Recommended LWN article: User-space shadow stacks

1.3. Support for fs-verity in overlayfs

This release adds support in overlayfs for using fs-verity to validate lowerdata files by specifying an overlay.verity xattr on the metacopy files. This is primarily motivated by the Composefs usecase, where there will be a read-only EROFS layer that contains redirect into a base data layer which has fs-verity enabled on all files. However, it is also useful in general if you want to ensure that the lowerdata files matches the expected content over time.

For more information, read the Documentation

1.4. Quotas and xattrs support in tmpfs

This release adds user and group quotas to tmpfs (project quotas will be added later). It also adds support for user xattrs (security xattrs and POSIX ACLs are alreadys supported) and support for stable directory offsets.

1.5. More configurable unbound workqueues

Workqueues are used by other parts of the kernel to defer some work that will be run asynchronously. There are various types, unbound workqueues are work items that are not bound to any specific CPU and they were usually spread inside each NUMA node, which isn't great when many unbound items are created on some modern CPUs (especially arm64) with multiple L3 caches. This release attempts to improve the CPU locality awareness of these items. Unfortunately there exists a pronounced trade-off between locality and utilization necessitating explicit configurations when workqueues are heavily used, thus some configuration knobs are available to achieve the best result for all types of hardware. The default behavior is to soft-affine according to last level cache boundaries. On machines which multiple L3 caches, which are becoming more popular along with chiplet designs, this improves cache locality while not harming work conservation too much.

Recommended LWN article: A pair of workqueue improvements

Documentation: Workqueues: Affinity scopes

1.6. Faster asynchronous Direct I/O using io_uring

When using io_uring to do asynchronous direct I/O, this release can improve performance significantly, up to a 37% improvement in throughput/latency for low queue depth IO.

1.7. First pieces of XFS online fsck

In order to achieve maximum reliability, XFS is aiming to be able to fix itself without unmounting the file system. This release includes the first infrastructure pieces that will allow this feature in next releases.

For more details, read the XFS online fsck design document

2. Core (various)

3. File systems

3.1. Btrfs

3.2. OverlayFS

  • Debugging check for valid superblock commit, commit, commit

  • Report overlayfs file ids with fanotify commit, commit, commit, commit

  • (FEATURED) Add support for using fs-verity to validate lowerdata files by specifying an overlay.verity xattr on the metacopy files. This is primarily motivated by the Composefs usecase, where there will be a read-only EROFS layer that contains redirect into a base data layer which has fs-verity enabled on all files. However, it is also useful in general if you want to ensure that the lowerdata files matches the expected content over time commit, commit, commit, commit

  • DEFLATE compression support commit

3.3. XFS

3.4. ext4

  • Add periodic superblock update check commit

  • Speed up delalloc append write commit

3.5. Ceph

3.6. FUSE

3.7. GFS2

  • Introduce new quota=quiet mount option commit

3.8. EROFS

3.9. KSMBD

  • Add support for read compound commit

3.10. NFS

  • Add support for NFSv4.1+ write delegation. A write delegation enables a client to cache data and metadata for a single file more aggressively, reducing network round trips and server workload commit, commit

  • Enable the NFS v4.2 READ_PLUS operation by default commit

3.11. TMPFS

4. Memory management

5. Block layer

6. BPF

7. Tracing, perf

8. Virtualization

9. Cryptography

10. Security

11. Networking

12. Architectures

12.1. ARM

12.2. x86

12.3. DMA engines

12.4. LoongArch

  • Add KFENCE (Kernel Electric-Fence) support commit

  • Add basic KGDB & KDB support commit

  • Add Loongson Binary Translation (LBT) extension support commit

  • Allow usage of LSX/LASX in the kernel commit

  • Add KASAN (Kernel Address Sanitizer) support commit

  • Add support for 32/64_PCREL relocation type commit, commit

  • Accelerate RAID math with LoongArch SIMD commit, commit, commit

  • Allow building with kcov coverage commit, commit

12.5. RISC-V

12.6. PowerPC

12.7. PA-RISC

12.8. S390

  • Remove "noexec" option commit

  • Add support for user-defined certificates commit

  • zcrypt_ep11misc: support API ordinal 6 with empty pin-blob commit

  • KVM: Enable AP instructions for PV-guests commit, commit, commit, commit

  • zcrypt: remove CEX2 and CEX3 device drivers commit

13. Drivers

13.1. Graphics

13.2. Storage

  • scsi: Differentiate system and runtime start/stop management commit

  • scsi: mpi3mr: Add support for more than 1MB I/O commit

  • scsi: qla2xxx: Add Unsolicited LS Request and Response Support for NVMe commit

  • scsi: smartpqi: Enhance controller offline notification commit

  • scsi: smartpqi: Enhance error messages commit

  • scsi: smartpqi: Enhance shutdown notification commit

  • scsi: st: Add third party poweron reset handling commit

  • scsi: ufs: core: Remove HPB support commit

  • ata: ahci: Add Elkhart Lake AHCI controller commit

  • Changes for UFS advanced RPMB commit, commit

  • ufs: ufs-pci: Add support for QEMU commit

  • UFS: Add OPP and interconnect support commit, commit, commit, commit, commit, commit, commit, commit

13.3. Drivers in the Staging area

  • media: atomisp: csi2-bridge: Add support for VCM I2C-client instantiation commit

  • media: atomisp: Drop atomisp-ov2680 sensor driver commit

13.4. Bluetooth

  • Add support for Gale Peak (8087:0036) commit

  • Check for ISO support in controller commit

  • btintel: Add support for Gale Peak commit

  • btintel: Add support to reset bluetooth via ACPI DSM commit

  • btnxpuart: Add support for AW693 chipset commit

  • btnxpuart: Add support for IW624 chipset commit

  • btnxpuart: Improve inband Independent Reset handling commit

  • btqca: Add WCN3988 support commit

  • btrtl: Add Realtek devcoredump support commit

  • btusb: Add a new VID/PID 0489/e0f6 for MT7922 commit

  • btusb: Add device 0489:e0f5 as MT7922 device commit

  • btusb: Add new VID/PID 0489/e102 for MT7922 commit

  • btusb: Add new VID/PID 04ca/3804 for MT7922 commit

  • btusb: Add support Mediatek MT7925 commit

  • btusb: Add support for another MediaTek 7922 VID/PID commit

  • btusb: mediatek: add MediaTek devcoredump support commit

  • hci_qca: Add qcom devcoredump support commit

  • hci_qca: Add qcom devcoredump sysfs support commit

13.5. Networking

13.6. Audio

13.7. Tablets, touch screens, keyboards, mouses

  • Add support for Azoteq IQS7210A/7211A/E commit, commit

  • da9063: add wakeup support commit

  • Add support for Azoteq IQS7222D commit, commit, commit, commit

  • mms114: add support for touch keys commit, commit

  • xpad: add GameSir T4 Kaleid Controller support commit

  • HID
    • hid-google-stadiaff: add support for Stadia force feedback commit

    • ogitech-hidpp: Add support for the Pro X Superlight commit, commit

    • logitech-hidpp: Add support for Logitech MX Anywhere 3 mouse commit

    • input: Support devices sending Eraser without Invert commit

    • nvidia-shield: Add battery support for Thunderstrike commit, commit, commit

    • steelseries: Add support for Arctis 1 XBox commit

    • logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse commit

13.8. TV tuners, webcams, video capturers

13.9. Serial Peripheral Interface (SPI)

  • cs42l43: Add SPI controller support commit

  • intel-pci: Add support for Granite Rapids SPI serial flash commit

  • loongson: add bus driver for the loongson spi controller commit

  • spi-geni-qcom: Add SPI Device mode support for GENI based QuPv3 commit

  • sun6i: add dual and quad SPI modes support for R329/D1/R528/T113s commit

13.10. Serial

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

  • reset: at91-reset: add sysfs interface to the power on reason commit

  • reset: oxnas-restart: remove obsolete restart driver commit

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

    • rtq2208: Add Richtek RTQ2208 SubPMIC driver commit

    • max77857: Add ADI MAX77857/59/MAX77831 Regulator Support commit

    • aw37503: add regulator driver for Awinic AW37503 commit

    • Qualcomm REFGEN regulator commit, commit, commit, commit, commit

13.12. Watchdog

  • dt-bindings: watchdog: marvell GTI system watchdog driver commit, commit

  • Add support for WDIOF_CARDRESET on TI AM65x commit

  • Add watchdog support for Amlogic-T7 SoCs commit, commit

13.13. Real Time Clock (RTC)

13.14. FRU Support Interface (FSI)

13.15. Clock

13.16. Multi Media Card (MMC)

  • sdhci-pci-o2micro: add Bayhub new chip GG8 support for express card commit

  • sdhci-pci-o2micro: add Bayhub new chip GG8 support for UHS-I commit

  • mmc: sdhci-sprd: Add SD HS mode online tuning commit, commit

  • power: reset: at91-reset: add sysfs interface to the power on reason commit

13.17. Hardware monitoring (hwmon)

13.18. Inter-Integrated Circuit (I2C + I3C)

  • Add I2C Address Translator (ATR) support commit

  • designware: Add support for recovery when GPIO need pinctrl commit

  • mlxcpld: Extend driver functionality and allow to run on ARM64 commit, commit

  • Add support for Maxim MAX735x/MAX736x variants commit, commit, commit, commit

13.19. Industrial I/O (iio)

13.20. General Purpose I/O (gpio)

  • mxc: add runtime pm support commit

  • pca953x: add support for TCA9538 commit

  • ds4520: Add ADI DS4520 GPIO Expander Support commit

  • 104-dio-48e: Add Counter/Timer support commit

13.21. Cryptography hardware acceleration

13.22. Leds

13.23. PHY ("physical layer" framework)

  • mediatek-ge-soc: support PHY LEDs commit

  • ARM: dts: rockchip: rv1126: Add VOP_LITE support commit

  • Provide Module 4 KSZ9477 errata (DS80000754C) commit

  • at803x: support qca8081 1G version chip commit, commit, commit, commit, commit, commit

  • realtek: usb: Add driver for the Realtek SoC USB 3.0 PHY commit

  • rockchip: inno-dsidphy: Add rv1126 support commit

  • smsc: add WoL and EEE support to LAN8740/LAN8742
  • smsc: add WoL support to LAN8740/LAN8742 PHYs commit

  • starfive: Add JH7110 PCIE 2.0 PHY driver commit

  • xilinx: phy-zynqmp: dynamic clock support commit, commit

13.24. PCI

13.25. Universal Serial Bus

  • serial: option: add FOXCONN T99W368/T99W373 product commit

  • serial: option: add Quectel EM05G variant (0x030e) commit

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

  • typec: intel_pmc_mux: Add new ACPI ID for Lunar Lake IOM device commit

  • serial: xr: Add TIOCGRS485 and TIOCSRS485 ioctls commit

  • cdc-acm: add PPS support commit

  • exynos: Enable USB for E850-96 board commit, commit, commit, commit

  • Add USB MIDI 2.0 Gadget Function Driver commit, commit, commit, commit, commit, commit

  • misc: onboard_usb_hub: add support for Cypress HX3 USB 3.0 family commit, commit, commit

  • typec: ucsi: Add debugfs for ucsi commands commit

13.26. IOMMU

13.27. Pin Controllers (pinctrl)

13.28. Power Management

  • ACPICA: Add support for _DSC as per ACPI 6.5 commit

  • ACPI: thermal: Drop nocrt parameter commit

  • thermal/drivers/loongson-2: Add thermal management support commit

  • ACPI: video: Add backlight=native DMI quirk for Apple iMac12,1 and iMac12,2 commit

  • cpupower: Add various feature control support for amd_pstate commit, commit, commit, commit, commit

  • cpuidle: teo: Do not check timers unconditionally every time commit, commit, commit

13.29. Memory Technology Devices (MTD)

13.30. Various

14. List of Pull Requests

15. Other news sites

KernelNewbies: Linux_6.6 (last edited 2023年11月03日 06:34:18 by SimonRuderich )

AltStyle によって変換されたページ (->オリジナル) /