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.8 was released on Sunday, 10 March 2024.

Summary: This release includes two new system calls for easier mount management; support for multi-size transparent huge pages in anonymous page faults; data type profiling support in perf which allows to correlate perf events with DWARF information; task scheduler support for better realtime scheduling; an option to forbid users from writing to partitions that are being used by file systems; new system calls to deal with multiple stacked LSMs; and a new driver for Intel Xe graphics. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Deadline servers for better realtime scheduling

Processes placed in the realtime scheduling class can starve other processes in classes with lower priority, which can cause problems. The Linux kernel uses a technique called "RT throttling" to avoid problems, but it not as performant as it could, so in this release the Linux kernel will use the so called "deadline servers", which replaces and improve that.

Recommended LWN article: Deadline servers as a realtime throttling replacement

1.2. Multi-size transparent huge pages for anonymous memory

Anonymous page faults (eg. faults for memory allocated by malloc) are usually done with a 4KB size. Work on [[https://kernelnewbies.org/Linux_5.16#Memory_folios_infrastructure_for_a_faster_memory_management|"folios" ]] now allows to allocate more than 4KB during a single page fault. This release adds support for it, and it also adds support for TBL compresion techniques allowed in modern hardware that allow to map physically contiguous chunks of memory. By default, the existing behaviour (and performance) is maintained. The user must explicitly enable multi-size THP to see the performance benefit.

Recommended LWN article: Large folios for anonymous memory

1.3. Two new syscalls for better mount management: listmount() and statmount()

Modern Linux systems can contain many mounts. Listing them and gathering information about their properties is not as easy as it should. Two new syscalls, listmount(2) and statmount(2) have been added to faciliate this effort.

Recommended LWN article: listmount() and statmount()

1.4. Data type profiling with perf

The perf tool in this release adds a feature called data type profiling , which allows to associate PMU samples to data types they refer using DWARF debug information. It depends on quality of PMU events and compiler for producing DWARF info, but it doesn't require any changes in the target program.

This allows the creation of tools that can do things such as pahole-style structure reordering or packing, but doing so with information about access patterns gathered from perf.

Recommended LWN article: Data-type profiling for perf

1.5. Forbid users from writing to partitions used by filesystems

This release adds a configuration option that forbids wriing to block devices that are being used by a mounted filesystem

Recommended LWN article: Defending mounted filesystems from the root user

1.6. New system calls to deal with multiple stacked LSMs

The Linux kernel added support for stacking security modules in Linux 5.1. LSM-aware applications, however, need some interfaces to get more information about the current LSM configuration. This release adds three new syscalls lsm_list_modules(), lsm_get_self_attr(), and lsm_set_self_attr(). These syscalls were designed to support multiple, simultaneaous (stacked) LSMs from the start as opposed to the current /proc based solutions which were created at a time when only one LSM was allowed to be active at a given time.

Recommended LWN article: Adding system calls for Linux security modules

1.7. Driver for new Intel Xe graphics

This release adds a new driver, Xe, for Intel GPUs that supports both integrated and discrete platforms starting with Tiger Lake (first Intel Xe Architecture)

2. Core (various)

  • (FEAURED) Add two mount querying syscalls: listmount(2) (which adds a way to query the children of a particular mount) and statmount(2) (which adds a way to query attributes of a single mount). They are more flexible than having to parse the complete /proc/self/mountinfo commit, commit, commit, commit, commit, commit, commit, commit

  • dmesg: CAP_SYSLOG was separated from CAP_SYS_ADMIN and introduced in Linux 2.6.37. For a long time, certain syslog actions required CAP_SYS_ADMIN or CAP_SYSLOG. Remove CAP_SYS_ADMIN for more fine-grained control commit

  • cgroup/cpuset: Expose cpuset.cpus.isolated commit

  • cgroup/cpuset: Improve CPU isolation in isolated partitions commit, commit, commit, commit

  • Support fanotify FAN_REPORT_FID on all filesystems commit, commit

  • ubsan
    • Lay the ground work for gaining instrumentation for signed, unsigned, and pointer wrap-around by making all 3 sanitizers available for testing. Additionally gets x86_64 bootable under the unsigned sanitizer for the first time commit, commit, commit

    • Reintroduce signed overflow sanitizer commit

  • /proc/self/pagemap: report SOFT_DIRTY bits through the PAGEMAP_SCAN ioctl commit

  • hardening
    • Enable KFENCE in the hardening config commit

    • Drop obsolete DRM_LEGACY from config fragment commit

    • Drop obsolete UBSAN_SANITIZE_ALL from config fragment commit

  • initramfs: Expose retained initrd as sysfs file commit

  • io_uring
    • Add method for returning provided buffer ring head commit

    • Add support for IORING_OP_FIXED_FD_INSTALL which allows installing a direct descriptor into the normal file table, just like receiving a file descriptor or opening a new file would do commit, commit

  • maple_tree: Introduce interfaces to improve the performance of fork() commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Task scheduler
    • (FEATURED) Introduce SCHED_DEADLINE server infrastructure (nested/2-level scheduling), which works more towards reducing SCHED_DEADLINE starvation of low priority tasks (e.g., SCHED_OTHER) tasks when higher priority tasks monopolize CPU cycles commit, commit, commit, commit, commit, commit

    • eevdf: Introduce O(1) fastpath for EEVDF task selection commit, commit

    • fair: Remove SCHED_FEAT(UTIL_EST_FASTUP) commit

    • fair: Use all little CPUs for CPU-bound workloads commit

    • Consolidate how the max compute capacity is used in the scheduler and how we calculate the frequency for a level of utilization commit

    • Tune the NUMA-balancing vma scanning logic some more, to better distribute the probability of a particular vma getting scanned commit

  • stackdepot
    • Add stats counters exported via debugfs commit

    • Make fast paths lock-less again commit

  • nolibc: add rstat support commit, commit, commit

  • /proc/sysrq-trigger: accept multiple keys at once commit

  • driver core: Enable fw_devlink=rpm by default commit

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Cryptography

9. Security

  • (FEATURED) LSM: Three new syscalls: lsm_list_modules(), lsm_get_self_attr(), and lsm_set_self_attr(). The first syscall simply lists the LSMs enabled, while the second and third get and set the current process' LSM attributes. Yes, these syscalls may provide similar functionality to what can be found under /proc or /sys, and considerable time has been spent trying to extend them, but these new syscalls were designed to support multiple, simultaneaous (stacked) LSMs from the start as opposed to the current /proc based solutions which were created at a time when only one LSM was allowed to be active at a given time commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • apparmor: switch SECURITY_APPARMOR_HASH from sha1 to sha256 commit

  • audit: Send netlink ACK before setting connection in auditd_set commit

  • evm: disable EVM on overlayfs commit, commit, commit

  • selinux: introduce an initial SID for early boot processes commit

  • lsm: new security_file_ioctl_compat() hook to handle the 32-bit ioctls on 64-bit systems problem commit

10. Networking

11. Architectures

12. Drivers

12.1. Graphics

12.2. Storage

12.3. Drivers in the Staging area

12.4. Networking

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

  • xpad: add Lenovo Legion Go controllers commit

  • zforce_ts: accept standard touchscreen properties commit

  • iqs269a: add support for OTP variants commit

  • iqs269a: add support for slider gestures commit

  • Driver for Adafruit Seesaw Gamepad commit

  • cap11xx: add advanced sensitivity settings commit

  • HID
    • logitech-hidpp: add support for Logitech G Pro X Superlight 2 commit

    • mcp2200: added driver for GPIOs of MCP2200 commit

    • nintendo: add support for nso controllers commit

    • Add new SFH interfaces commit, commit, commit

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus

  • HID: amd_sfh: Add a new interface for exporting HPD data commit

  • dwc3: Support EBC feature of DWC_usb31 commit

  • dwc3: pci: add support for the Intel Arrow Lake-H commit

  • f_uac1: adds support for SS and SSP commit

  • gadget: ncm: Add support to update wMaxSegmentSize via configfs commit

  • host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK commit

  • misc: onboard_usb_hub: Add support for Cypress CY7C6563x commit

  • serial: cp210x: add ID for IMST iM871A-USB commit

  • serial: option: add Fibocom FM101-GL variant commit

  • serial: qcserial: add new usb-id for Dell Wireless DW5826e commit

  • typec: mux: add Qualcomm WCD939X USB SubSystem Altmode Mux driver commit

  • typec: tcpm: Support multiple capabilities commit

  • xhci: xhci-plat: Add support for BCM2711 commit

12.9. Serial Peripheral Interface (SPI)

  • Add multi-cs memories support in SPI core commit

  • axi-spi-engine: add watchdog timer commit

  • dw: Remove Intel Thunder Bay SOC support commit

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

  • intel-pci: Add support for Lunar Lake-M SPI serial flash commit

  • stm32: add STM32F7 support commit

12.10. Watchdog

  • mediatek: mt7988: add wdt support commit

  • it87_wdt: Add IT8659 ID commit

  • s3c2410_wdt: Add support for Google gs101 SoC commit

12.11. Serial

  • Move tty and serdev to be children of serial core port device commit

  • uartlite: Use dynamic allocation for major number when uart ports > 4 commit

  • 8250: microchip: Burst Mode Support for PCI1XXXX commit, commit, commit

12.12. CPU Frequency scaling

  • intel_pstate: Update hybrid scaling factor for Meteor Lake commit

  • intel_pstate: Add Emerald Rapids support in no-HWP mode commit

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

  • power: supply: bq24190_charger: Add support for BQ24296 commit

  • regulator
    • Add option to prevent disabling unused regulators commit

    • Add regulator netlink event support commit

    • qcom_spmi: Add PM8937 SPMI regulator commit

    • qcom_smd: Add PM8937 regulators commit

    • Introduce handling for system-critical under-voltage events commit

    • qcom-rpmh: extend to support multiple linear voltage ranges commit

    • qcom-rpmh: add support for pm8010 regulators commit

12.14. Real Time Clock (RTC)

  • Add driver for Nuvoton ma35d1 rtc controller commit

  • Add support for configuring the UIP timeout for RTC reads commit

  • max31335: add driver support commit

  • rv8803: Add power management support commit

  • tps6594: Add driver for TPS6594 RTC commit

12.15. Pin Controllers (pinctrl)

  • Add support for the Lantic PEF2256 pinmux commit

  • intel: Add Intel Meteor Point pin controller and GPIO support commit

  • intel: Add a generic Intel pin control platform driver commit

  • qcom: Add X1E80100 pinctrl driver commit

  • qcom: Introduce the SM8650 Top Level Mode Multiplexer driver commit

  • qcom: sm4450: dd SM4450 pinctrl driver commit

  • qcom: sm8650-lpass-lpi: add SM8650 LPASS commit

  • renesas: rzg2l: Add output enable support commit

  • renesas: rzg2l: Add support to select power source for Ethernet pins commit

  • samsung: Add gs101 SoC pinctrl configuration commit

  • samsung: add exynosautov920 pinctrl commit

  • samsung: support ExynosAuto GPIO structure commit

  • tps6594: Add driver for TPS6594 pinctrl and GPIOs commit

12.16. Multi Media Card (MMC)

  • Add HS400 tuning in HS400es initialization commit

  • Add wp_grp_size sysfs node commit

  • rtsx: add rts5264 to support sd express card commit

  • sdhci-of-dwcmshc: Add support for T-Head TH1520 commit

  • xenon: Add ac5 support via bounce buffer commit

12.17. Memory Technology Devices (MTD)

12.18. Industrial I/O (iio)

  • Add modifiers for A and B ultraviolet light commit

  • adc: Add driver support for MAX34408/9 commit

  • adc: Add support for AD7091R-8 commit

  • adc: ad7091r: Allow users to configure device events commit

  • amplifiers: hmc425a: add support for ADRF5740 Attenuator commit

  • bu27008: Add illuminance channel commit

  • chemical: add support for Aosong AGS02MA commit

  • dac: ad5791: Add support for controlling RBUF via devicetree commit

  • dac: driver for MCP4821 commit

  • humidity: Add driver for ti HDC302x humidity sensors commit

  • imu: Add driver for BMI323 IMU commit

  • light: add VEML6075 UVA and UVB light sensor driver commit

  • light: driver for Lite-On ltr390 commit

  • light: isl76682: Add ISL76682 driver commit

  • pressure: bmp280: Add support for BMP390 commit

  • pressure: bmp280: Allow multiple chips id per family of devices commit

  • pressure: driver for Honeywell HSC/SSC series commit

  • resolver: ad2s1210: add support for adi,fixed-mode commit

  • temperature: Add MCP9600 thermocouple EMF converter commit

  • temperature: mlx90635 MLX90635 IR Temperature sensor commit

12.19. Multi Function Devices (MFD)

  • tps65086: Enable register view in debugfs commit

  • qcom-spmi-pmic: Add support for PM8937 commit

12.20. Pulse-Width Modulation (PWM)

  • Mention PWM chip ID in /sys/kernel/debug/pwm commit

12.21. Inter-Integrated Circuit (I2C + I3C)

  • Create debugfs entry per adapter commit

  • i801: Add lis3lv02d for Dell Precision 3540 commit

  • i801: Add lis3lv02d for Dell XPS 15 7590 commit

  • rcar: introduce Gen4 devices commit, commit

  • smbus: Support up to 8 SPD EEPROMs commit

  • stm32f7: add support for stm32mp25 soc commit

12.22. Hardware monitoring (hwmon)

  • sht3x: add sts3x support commit

  • Add driver for Gigabyte AORUS Waterforce AIO coolers commit

  • dell-smm: Add Optiplex 7000 to fan control whitelist commit

  • dell-smm: Add support for WMI SMM interface commit

  • emc1403: Add support for EMC1442 commit

  • k10temp: Add support for AMD Family 19h Model 8h commit

  • lm75: Add AMS AS6200 temperature sensor commit

  • max31827: Add support for max31828 and max31829 commit

  • nct6775: Add support for 2 additional fan controls commit

  • npcm750-pwm-fan: Add NPCM8xx support commit

  • pmbus: Add ltc4286 driver commit

  • pmbus: Add support for MPS Multi-phase mp2856/mp2857 controller commit

  • pmbus: Add support for MPS Multi-phase mp5990 commit

12.23. General Purpose I/O (gpio)

  • rtd: Add support for Realtek DHC(Digital Home Center) RTD SoCs commit

  • nuvoton: Add Nuvoton NPCM sgpio driver commit

12.24. Leds

  • aw200xx: Add support for aw20108 device commit

  • aw200xx: Support HWEN hardware control commit

  • ledtrig-tty: Add additional line state evaluation commit

  • ledtrig-tty: Make rx tx activitate configurable commit

  • max5970: Add support for max5970 commit

  • sun50i-a100: New driver for the A100 LED controller commit

  • trigger: netdev: Extend speeds up to 10G commit

12.25. DMA engines

  • ls2x-apb: New driver for the Loongson LS2X APB DMA controller commit

  • tegra210-adma: Support dma-channel-mask property commit

  • xilinx: xdma: Implement interleaved DMA transfers commit

  • xilinx: xdma: Add transfer error reporting commit

  • idxd: Add support for device/wq defaults commit

12.26. Cryptography hardware acceleration

12.27. PCI

12.28. Thunderbolt

  • Add support for Intel Lunar Lake commit

12.29. Clock

12.30. PHY ("physical layer" framework)

  • mediatek: tadd support force phy mode switch commit

  • phy-rockchip-inno-usb2: Add RK3128 support commit

  • qcom-qmp-combo: Add x1e80100 USB/DP combo phys commit

  • qcom-qmp-usb: Add Qualcomm SDX75 USB3 PHY support commit

  • qcom-qmp-usb: Add Qualcomm X1E80100 USB3 PHY support commit

  • qcom-qmp: qserdes-txrx: Add v7 register offsets commit

  • ti: gmii-sel: Enable SGMII mode for J784S4 commit

  • ti: j721e-wiz: Add SGMII support in WIZ driver for J784S4 commit

12.31. EDAC (Error Detection And Correction)

12.32. Various

13. List of Pull Requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2024-05-05 18:54:47 by diegocalleja)