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 5.10 was released on Sun, 13 December 2020.

Summary: This new Linux version is a Long Term Support release, and it brings support for a fast commit mode in Ext4 which provides faster fsync(); support for safer sharing of io_uring rings between processes; a new syscall to provide madvise(2) hints for other processes, code patching to allow direct calls to be used instead of indirect calls for improved repotline performance, support for register encryption in AMD's virtualized guests; faster and lean virtio-fs performance; support for ARM Memory Tagging Extension that prevents a number of security issues; and code patching to allow direct calls to be used instead of indirect calls. As always, there are many other new drivers and improvements.

1. Prominent features

1.1. Long Term Support

This release is a Long Term Support release, which means that maintainers will provide bugfixes for this kernel revision for a much longer period of time than for other stable kernel releases.

1.2. Ext4 fast commit support, for faster metadata performance

Many applications use fsync(2) to ensure that data is reliably placed on disk. Such operation attempts to synchronize to the disk a few more metadata than expected. In this release, Ext4 will use a novel journaling technique, consisting in optimistically only journal the minimum required information through which a crash recovery operation can recover the metadata modified through an fsync operation. This speeds up fsync() and metadata heavy operations. This feature needs to be enabled at mkfs time.

Recommended LWN article: Fast commits for ext4

1.3. Support io_uring restrictions to facilitate secure sharing of rings

Since io_uring was introduced in Linux 5.1, it has seen widespread adoption. As usual, widespread adoption leads to new use cases, such as processes that might want share a ring with less trusted processes. This release adds a few API changes that add some restrictions and make possible for host application to grant access to some of its file descriptors and allow untrusted applications or guests to safely use io_uring.

Recommended LWN article: Operations restrictions for io_uring

1.4. Memory hints for other processes

Processes in Linux can use the madvise() system call to inform the kernel about their behaviour in order to get better performance. However, in some platforms (e.g., Android), the information required to make the hinting decision is not known to the process. Instead, it is known to a centralized userspace daemon(e.g., ActivityManagerService), and that daemon must be able to initiate memory reclaim on its own without any app involvement. To solve the concern, this patch introduces new syscall - process_madvise(2). Basically, it's same with madvise(2) syscall, except that it requires a pidfd of a target process, and for now it supports a more limited set of possible memory hints.

Recommended LWN article: process_madvise(), pidfd capabilities, and the revenge of the PIDs

1.5. Faster performance and memory consumption in virtio-fs

virtio-fs was added in Linux 5.4 as a solution to share parts of the host file systems with guest VMs in a high-performance, API-compatible way. In this release, virtio-fs adds supports for DAX, which allows bypassing guest page cache and allows mapping host page cache directly in guest address space. This can speed up things considerably in many situations. Also this can result in substantial memory savings as file data does not have to be copied in guest and it is directly accessed from host page cache.

1.6. AMD support for encryption of register in virtualized guests

Linux supports SEV since Linux 4.15. SEV is an AMD feature that encrypts the memory of virtualized guests, such that hosts can't access it unencrypted. This release enhances it by also encrypting the guest register state, making the registers inaccessible to the hypervisor by en-/decrypting them on world switches. Thus, it adds additional protection to Linux guests against exfiltration, control flow and rollback attacks. With SEV-ES, the guest is in full control of what registers the hypervisor can access.

1.7. Static calls for improved post-Spectre performance

Static calls are a replacement for global function pointers. They use code patching to allow direct calls to be used instead of indirect calls. They give the flexibility of function pointers, but with improved performance. This is especially important for cases where retpolines would otherwise be used, as retpolines can significantly impact performance. The new APIs are utilized in the x86 perf code, a heavy user of function pointers, where static calls speed up the PMU handler by 4.2%.

Recommended LWN article: Relief for retpoline pain

1.8. Support ARM Memory Tagging Extension

Memory Tagging Extension (part of the ARMv8.5 Extensions) provides a mechanism to detect the sources of memory related errors which may be vulnerable to exploitation, including bounds violations, use-after-free, use-after-return, use-out-of-scope and use before initialization errors.

Recommended LWN article: The Arm64 memory tagging extension in Linux

2. Core (various)

3. File systems

4. Memory management

5. Tracing, perf and BPF

6. Block layer

7. Virtualization

8. Cryptography

9. Security

  • integrity: Load MOK certificates from an EFI config table commit, commit, commit

  • selinux: add detailed tracepoint on audited events commit, commit

  • integrity: improve user feedback for invalid bootparams
  • LSM: SafeSetID: Add set*git security policy commit

  • LSM: Introduce kernel_post_load_data() hook commit

  • selinux: move policy commit after updating selinuxfs commit

10. Networking

11. Architectures

11.1. ARM

11.2. X86

11.3. S390

  • Introduce Failure Injection feature commit

  • ap: Add support for SCLP AP adapter config/deconfig commit, commit, commit

  • zcrypt: Support for CCA APKA master keys commit

  • pkey: Support CCA and EP11 secure ECC private keys commit

    • Add sysfs file to show scheduled leap seconds commit

  • Allow configuration of TX queues for OSA devices commit

  • Implement ndo_bridge_getlink commit and ndo_bridge_setlink for learning_sync commit

  • Make ip_fast_csum() faster commit

  • Add NVMe firmware-assisted kernel dump support commit, commit, commit

  • Remove cad commandline option commit

  • Convert architecture code to GENERIC_VDSO commit

  • Add ARCH_HAS_DEBUG_WX support commit

  • Add HAVE_GET_KERNEL_NOFAULT support commit

11.4. POWERPC

11.5. RISCV

11.6. MIPS

11.7. PARISC

  • Add qemu fw_cfg interface commit

11.8. IA64

11.9. ARC

11.10. UM

  • vector: Add dynamic tap interfaces and scripting (functionality roughly compatible with the existing qemu ifup scripting) commit

12. Drivers

12.1. Graphics

12.2. Storage

  • ahci
    • Add Intel Rocket Lake PCH-H RAID PCI IDs commit

    • qoriq: enable acpi support in qoriq ahci driver commit

  • SCSI
    • arcmsr: Add support for ARC-1886 series RAID controllers commit

    • fc: Add 256GBit speed setting to SCSI FC transport commit

    • hisi_sas: Add BIST support for fixed code pattern commit and for phy FFE commit

    • hisi_sas: Add runtime PM support for v3 hw commit, commit, commit, commit, commit, commit, commit

    • qedi: Add support for handling PCIe errors commit

    • qla2xxx: Add SLER and PI control support commit

    • qla2xxx: Add rport fields in debugfs commit

    • scsi_debug: Implement lun_format commit

    • sd: make disk cmd retries configurable commit, commit

    • smartpqi: Add id support for SmartRAID 3152-8i commit

    • smartpqi: Support device deletion via sysfs commit

    • ufs-mediatek: Support performance mode for inline encryption engine commit

    • ufs-pci: Add LTR support for Intel controllers commit

  • nvmet: add passthru ZNS support commit

12.3. Drivers in the Staging area

12.4. Networking

12.5. Audio

12.6. Tablets, touch screens, keyboards, mouses

  • Add zinitix touchscreen driver commit

  • joystick: add ADC attached joystick driver commit

  • logitech-hidpp: Add PID for MX Anywhere 2 commit

  • soc_button_array - add support for INT33D3 tablet-mode switch devices commit

  • synaptics: enable InterTouch for ThinkPad P1/X1E gen 2 commit

  • synaptics: enable InterTouch for ThinkPad T14 Gen 1 commit

  • synaptics-rmi4: add support for F3A commit

  • synaptics-rmi4: support bootloader v8 in f34v7 commit

  • xpad: support Ardwiino Controllers commit

  • soc_button_array: add Lenovo Yoga Tablet2 1051L to the dmi_use_low_level_irq list commit

  • HID
    • uclogic: Add ID for Trust Flex Design Tablet commit

    • Add support for Sega Saturn commit

    • cypress: Support Varmilo Keyboards' media hotkeys commit

    • apple: Add support for Matias wireless keyboard commit

    • ite: Add USB id match for Acer One S1003 keyboard dock commit

    • multitouch: Lenovo X1 Tablet Gen2 trackpoint and buttons commit

    • multitouch: Lenovo X1 Tablet Gen3 trackpoint and buttons commit

    • Add vivaldi HID driver commit

12.7. TV tuners, webcams, video capturers

12.8. Universal Serial Bus (USB) and Thunderbolt

  • Thunderbolt
    • Add support for Intel Tiger Lake-H commit

    • Add debugfs interface commit

  • dwc-meson-g12a: Add support for USB on AXG SoCs commit

  • dwc2: add support for APM82181 USB OTG commit

  • dwc3: pci: add support for the Intel Alder Lake-S commit

  • dwc3: qcom: Add interconnect support in dwc3 driver commit

  • dwc3: simple: add support for Hikey 970 commit

  • serial
    • ftdi_sio: add support for FreeCalypso JTAG+UART adapters commit

    • option: Add Telit FT980-KS composition commit

    • option: add Cellient MPL200 card commit

    • option: add LE910Cx compositions 0x1203, 0x1230, 0x1231 commit

    • option: add Quectel EC200T module support commit

    • option: add Telit FN980 composition 0x1055 commit

    • pl2303: add device-id for HP GC device commit

    • option: add Fibocom NL668 variants commit

    • option: add support for Thales Cinterion EXS82 commit

    • serial: ch341: add new Product ID for CH341A commit

  • Introduce PMIC based USB type C detection commit

  • TCPM support for FRS and AutoDischarge Disconnect commit, commit, commit, commit, commit, commit, commit

  • typec: add support for STUSB160x Type-C controller family commit

  • typec: intel_pmc_mux: Support for device role (UFP) commit

  • typec: mt6360: Add support for mt6360 Type-C driver commit

  • Raspberry Pi 4 USB firmware initialization rework commit, commit, commit, commit, commit, commit, commit, commit, commit

  • xhci: add debugfs support for ep with stream commit

12.9. Serial Peripheral Interface (SPI)

12.10. Watchdog

  • Add Toshiba Visconti watchdog driver commit

  • Add support for sl28cpld watchdog commit

  • it87_wdt: add IT8772 ID commit

  • it87_wdt: add IT8784 ID commit

  • renesas_wdt: support handover from bootloader commit

12.11. Serial

  • 8250_pci: Add WCH384_8S 8 port serial device commit

  • mcf: add sysrq capability commit

12.12. CPU Frequency scaling

  • Prevent "ondemand" and "conservative" from being configured as the default cpufreq governor in the case when schedutil is the default choice for the default governor setting. commit

  • sti-cpufreq: add stih418 support commit

  • qcom-hw: Add cpufreq support for SM8250 SoC commit

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

  • power: supply: Add support for RN5T618/RC5T619 charger and fuel gauge commit

  • power: supply: gpio-charger: add charge-current-limit feature commit

  • power: supply: bq27xxx: add support for TI bq34z100 commit

  • power: supply: smb347-charger: Support SMB345 and SMB358 commit

  • power: supply: max17040: Support compatible devices commit

  • power: supply: max17040: Support soc alert commit

  • power: supply: max17040: Support setting rcomp commit

  • power: supply: bq25980: Add support for the BQ259xx family commit

  • power: reset: ocelot: Add support for Sparx5 commit

  • regulator: mt6360: Add support for MT6360 regulator commit

  • regulator: qcom_spmi: Add PM660/PM660L regulators commit

  • regulator: qcom_smd: Add PM660/PM660L regulator support commit

  • regulator: Support ROHM BD9576MUF and BD9573MUF commit

  • regulator: qcom_smd: add pm8953 regulators commit

  • regulator: rt4801: Add support for RT4801 Display Bias regulator driver commit

  • regulator: rpi-panel: Add regulator/backlight driver for RPi panel commit

  • regulator: rtmv20: Adds support for Richtek RTMV20 load switch regulator commit

12.14. Real Time Clock (RTC)

  • ds1307: enable rx8130's backup battery, make it chargeable optionally commit

  • rv3032: Add a driver for Microcrystal RV-3032 commit

12.15. Pin Controllers (pinctrl)

  • Ingenic: Add support for SSI and I2S pins commit, commit, commit

  • actions: Add Actions S500 pinctrl driver commit

  • mediatek: Add MT8167 Pinctrl driver commit

  • mediatek: Add pinctrl driver for mt8192 commit

  • qcom: Add msm8226 pinctrl driver commit

  • sunxi: add support for the Allwinner A100 pin controller commit

  • visconti: Add Toshiba Visconti SoCs pinctrl support commit

12.16. Multi Media Card (MMC)

  • sdhci-iproc: Enable eMMC DDR 3.3V support for bcm2711 commit

  • sdhci-of-sparx5: Add Sparx5 SoC eMMC driver commit

  • sdhci-pci-gli: Add CQHCI Support for GL9763E commit

  • sdhci: Add LTR support for some Intel BYT based controllers commit

  • sdhci_am654: Add support for input tap delay commit

  • sdhci_am654: Add support for software tuning commit

12.17. Memory Technology Devices (MTD)

12.18. Industrial I/O (iio)

  • accel: adxl372: Add support for FIFO peak mode commit

  • accel: kxcjk1013: Add support for KIOX010A ACPI DSM for setting tablet-mode commit

  • adc: ad9467: add support for AD9265 high-speed ADC commit and AD9434 high-speed ADC commit

  • chemical: atlas-ezo-sensor: add humidity sensor support commit and for O2 sensor commit

  • gyro: Add driver support for ADXRS290 commit

  • gyro: adxrs290: Add triggered buffer support commit and debugfs register access support commit

  • humidity: Add TI HDC20x0 support commit

  • light: as73211: New driver commit

  • mlx90632: Adding extended calibration option commit

12.19. Multi Function Devices (MFD)

  • Add simple regmap based I2C driver commit

  • Add ACPI support to Kontron PLD driver commit

  • ene-kb3930: Add driver for ENE KB3930 Embedded Controller commit

  • intel-lpss: Add device IDs for UART ports for Lakefield commit

  • intel-m10-bmc: Add Intel MAX 10 BMC chip support for Intel FPGA PAC commit

  • lp87565: Add LP87524-Q1 variant commit

  • simple-mfd-i2c: Add sl28cpld support commit

12.20. Pulse-Width Modulation (PWM)

  • Add support for sl28cpld PWM controller commit

12.21. Inter-Integrated Circuit (I2C + I3C)

  • Add slave testunit driver commit

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

  • ismt: Add support for Intel Emmitsburg PCH commit

  • mlxbf: I2C SMBus driver for Mellanox BlueField SoC commit

  • rcar: add HostNotify support commit

  • stm32f7: Add SMBus Host-Notify protocol support commit

12.22. Hardware monitoring (hwmon)

  • Extending hwmon ABI with attributes for rated values commit, commit

  • Expose PEC debugfs attribute commit

  • pmbus
  • Add support for the sl28cpld hardware monitoring controller commit

  • k10temp: Add support for Zen3 CPUs commit

  • lm75: Add regulator support commit

  • Add hwmon driver for Intel MAX 10 BMC commit

  • Add hardware monitoring driver for Moortec MR75203 PVT controller commit

  • gsc-hwmon: add fan sensor commit

12.23. General Purpose I/O (gpio)

12.24. Leds

  • Add driver for Acer Iconia Tab A500 commit

  • lp50xx: Add the LP50XX family of the RGB LED driver commit

  • pca955x: Add an IBM software implementation of the PCA9552 chip commit

12.25. DMA engines

  • xilinx: dpdma: Add debugfs support commit

  • idxd: add support for configurable max wq batch size commit and max wq xfer size commit

  • idxd: add command status to idxd sysfs attribute commit

12.26. Hardware Random Number Generator (hwrng)

  • ingenic: Add hardware TRNG for Ingenic X1830 commit

  • xiphera-trng: add support for XIP8001B hwrng commit

12.27. Cryptography hardware acceleration

12.28. PCI

  • Add Kconfig options for MPS/MRRS strategy commit

  • brcmstb: Add bcm7278 PERST# support commit

  • hip: Add handling of HiSilicon HIP PCIe controller errors commit

  • layerscape: Add EP mode support for ls1088a and ls2088a commit

12.29. FRU Support Interface (FSI)

  • aspeed: Support cabled FSI commit

  • aspeed: Support CFAM reset GPIO commit

  • aspeed: Add module param for bus divisor commit

12.30. Clock

  • axi-clkgen: Add support for fractional dividers commit

  • imx: imx21: Remove clock driver commit

  • mediatek: Add MT8167 clock support commit

  • meson: add sclk-ws driver commit

  • qcom: Add SM8150 and SM8250 videocc drivers commit, commit, commit, commit, commit

  • qcom: Add display clock controller driver for SM8150 and SM8250 commit

  • renesas: cpg-mssr: Add support for R-Car V3U commit

  • sp804: Add support for Hisilicon sp804 timer commit

  • sunxi-ng: add support for the Allwinner A100 CCU commit

12.31. PHY ("physical layer" framework)

12.32. EDAC (Error Detection And Correction)

  • al-mc-edac: Add Amazon's Annapurna Labs Memory Controller driver commit

12.33. Various

13. List of Pull Requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2021-01-13 03:57:03 by RandyDunlap)