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.17 was released on Sun, 20 Mar 2022.

Summary: Among other changes this release includes support for recursive id-mapped mounts; CO-RE support that makes compiled BPF programs more portable; a new P-state driver for modern AMD CPUs; the random number generator switched to BLAKE2s and got much faster; a new Real-Time Linux Analysis tool; the fscache networking caching backend was rewritten; new fanotify flag to replace some inotify patterns; support for giving names to anonymous memory mappings. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Support recursive id-mapped mounts

Linux 5.12 added support for id-mapped mounts, that is, creating a mount of an existing file system with the user and group IDs mapped to different ones. This is very useful for containers, where you might want to mount a directory with some random user ID as the user ID expected by the container. This feature, however, required that the base file system was a file system that was not id-mapped itself. This release supports recursive id-mapped mounts.

1.2. BPF CO-RE support and other improvements

The nature of BPF programs makes hard for them to be portable: The position of a member in a data structure can change depending from version to version and even on the same kernel depending on the compiler options. This requires compiling BPF programs in the target computer. In order to make BPF programs more portable, a few features are required; some have already been merged, like BTF, which was introduced in Linux 4.18 and provides type information of all kernel data structures. This release introduces "CO-RE" -Compile Once, Run Everywhere- support. Along with other pieces in the userspace BPF infrastructure, this helps to create BPF programs that can be run in different kernels without requiring compilation.

Recommended article: BPF CO-RE reference guide.

This release also adds the bpf_loop helper, which helps to move loop logic of BPF programs into the kernel and thereby guarantee that the loop will always terminate

Recommended article: A different approach to BPF loops

1.3. New P-State driver for modern AMD cpus

This release includes a new AMD P-State driver. AMD P-State is the AMD CPU performance scaling driver that introduces a new CPU frequency control mechanism on AMD Zen based CPU series in Linux kernel. The new mechanism is based on Collaborative Processor Performance Control (CPPC) which is finer grain frequency management than legacy ACPI hardware P-States. Current AMD CPU platforms are using the ACPI P-states driver to manage CPU frequency and clocks with switching only in three P-states. AMD P-State leverages the Linux kernel governors such as schedutil, ondemand, etc. to manage the performance hints which are provided by CPPC hardware functionality. AMD P-State is supported on recent AMD Zen base CPU series include some of Zen 2 and Zen 3 processors.

1.4. Random number generator improvements

This release switches the entropy extractor in the RNG from SHA-1 to BLAKE2s. This change improves the backtracking security from 80 bits to 128 bits. Some additional changes have also drastically improved performance.

Recommended post: Random number generator enhancements for Linux 5.17 and 5.18

1.5. Rewrite of the networking caching backend for networking file systems

Linux networking file systems (e.g. NFS) can optionally use a networking cache layer called fscache and cachefiles. This layer has been rewritten in this release, significantly simplifying the code compared to what's upstream, removing the complex operation scheduling and object state machine in favour of something much smaller and simpler

1.6. New Real-Time Linux Analysis (RTLA) tool

As part of the efforts to get PREEMPT_RT into mainline, this release includes a Real-Time Linux Analysis (RTLA) tool. rtla is a meta-tool that includes a set of commands that aims to analyze the real-time properties of Linux. But instead of testing Linux as a black box, rtla leverages kernel tracing capabilities to provide precise information about the properties and root causes of unexpected results, making it easier for users and developers to collect performance and trace data, and helping fine-tune their systems/algorithms.

Recommended blog: And now Linux has a Real-Time Linux Analysis (RTLA) tool!

1.7. New fanotify FAN_RENAME flag

This release adds a FAN_RENAME event to the fanotify interfaces to report extra info records about new and old parent+name details. This new event was designed as a replacement for the "inotify way" of joining the MOVED_FROM/MOVED_TO events using a cookie

1.8. Support giving names to anonymous memory

Anonymous memory (not backed by a file, e.g. malloc) is, as the name says, anonymous, and it's not easy to debug anonymous memory usage coming from various system components. This release allows to give a name to anonymous memory mappings. It adds a field to /proc/pid/maps and /proc/pid/smaps to show a userspace-provided name for anonymous vmas. The names of named anonymous vmas are shown as [anon:<name>]. Userspace can set the name for a region of memory by calling prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, start, len, (unsigned long)name);.

Recommended LWN article: Not-so-anonymous virtual memory areas

1.9. Mitigate straight-line speculation attacks

A new attack for CPUs has been found, called "Straight-line speculation"; this release adds some mitigations for it.

Recommended LWN article: Blocking straight-line speculation — eventually. commit, commit, commit, commit, commit, commit

2. Core (various)

3. File systems

4. Memory management

5. Block layer

6. Tracing, perf and BPF

7. Virtualization

8. Cryptography

9. Networking

  • TCP optimizations. The most notable change is in deferring the freeing of socket buffers after the socket lock is released, which improves performance in recvmsg and RX zerocopy commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Allow CAP_NET_RAW to setsockopt SO_PRIORITY commit

  • Allow SO_MARK with CAP_NET_RAW commit

  • Expose SO_RCVBUF/SO_SNDBUF through bpf_getsockopt() commit

  • Get ingress_ifindex in BPF_SK_LOOKUP prog type commit, commit

  • bridge: Allow base 16 inputs in sysfs commit

  • Bonding
    • Add arp_missed_max sysctl to specify the number of arp_interval monitor checks that must fail in order for an interface to be marked down by the ARP monitor commit

    • Pass get_ts_info and SIOC[SG]HWTSTAMP ioctl to active device commit

  • Add new hwtstamp flag HWTSTAMP_FLAG_BONDED_PHC_INDEX to get the bond active interface's PHC commit, commit

  • Wireless
    • Add support for notifying association comeback commit, commit

    • Allow continuous radar monitoring on offchannel chain commit

    • Implement APIs for dedicated radar detection HW commit

    • Allow drivers to provide a destination device + info for flow offload. Only supported in combination with 802.3 encap offload commit

    • Indicate SA Query procedures offload for AP SME device commit, commit

  • sysctl:
    • Enable max_dgram_qlen unix sysctl to be configurable by non-init user namespaces commit

    • Enable neighbor sysctls that is save for userns root commit

    • Namespaceify min_pmtu sysctl commit

    • Namespaceify mtu_expires sysctl commit

  • ethtool
  • Allow user to offload tc action to net device commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • GRO: add ability to control gro max packet size commit

  • IPv4: support binding to nonlocal addresses commit

  • IPv6: ioam: Support for Queue depth data field commit

  • MCTP
    • Add MCTP-over-serial transport binding commit

    • Emit RTM_NEWADDR and RTM_DELADDR netlink messages for MTCP address changes commit

  • MPTCP
  • Netfilter
  • sit: allow encapsulated IPv6 traffic to be delivered locally commit

  • smc
    • Introduce TCP ULP support commit

    • ntroduce net namespace support for linkgroup commit

  • xfrm: Add support for SM3 and SM4 secure hashes commit, commit

  • batman-adv: allow netlink usage in unprivileged containers commit

  • Bluetooth
    • aosp: Support AOSP Bluetooth Quality Report commit, commit

    • Set Privacy Mode when updating the resolving list commit, commit

    • hci_sync: Add support for waiting specific LE subevents commit

10. Architectures

10.1. ARM

10.2. x86

10.3. PowerPC

10.4. RISC-V

10.5. MIPS

  • BCM47XX: Add board entry for Linksys WRT320N v1 commit

  • BCM47XX: Add support for Netgear R6300 v1 commit

  • BCM47XX: Add support for Netgear WN2500RP v1 & v2 commit

  • Loongson64: Add Loongson-2K1000 reset platform driver commit

  • TXX9: Remove TX4939 SoC support commit, remove rbtx4938 board support commit,remove rbtx4939 board support commit

  • New Kconfig option ZBOOT_LOAD_ADDRESS commit

10.6. PA-RISC

  • Rewrite light-weight syscall and futex code commit

  • Add kgdb io_module to read chars via PDC commit

  • Enable TOC (transfer of contents) feature unconditionally commit

10.7. S390

  • Add new CPU-MF Counters for new IBM Z Hardware commit, commit

  • crypto: add SIMD implementation for ChaCha20 commit

10.8. UML

  • Add devicetree support commit

  • virtio_uml: Allow probing from devicetree commit

10.9. M68K

  • Enable memtest functionality commit

11. Drivers

11.1. Graphics

11.2. Power management

  • ACPI
    • DPTF IDs for Raptor Lake commit, commit, commit

    • PCC: Implement OperationRegion handler for the PCC Type 3 subtype commit

    • Introduce Platform Firmware Runtime Update and Telemetry drivers. The PFRUT(Platform Firmware Runtime Update and Telemetry) kernel interface is designed to interact with the platform firmware interface defined in the Management Mode Firmware Runtime Update commit, commit, commit, commit

    • Add support for PCC Opregion special context data commit

    • iASL/Disassembler: Additional support for NHLT table commit

    • iASL/NHLT table: "Specific Data" field support commit

    • Add support for AGDI table commit

  • EFI: runtime: avoid EFIv2 runtime services on Apple x86 machines commit

  • hibernate: Allow ACPI hardware signature to be honoured commit

  • power: supply: core: add POWER_SUPPLY_HEALTH_NO_BATTERY commit

  • Add Thermal support for RZ/G2L commit

11.3. Storage

  • SCSI
    • ufs: Implement polling support commit

    • mpi3mr: Add support for PCIe Managed Switch SES device commit

    • mpi3mr: Add Event acknowledgment logic commit

    • mpi3mr: Enhanced Task Management Support Reply handling commit

    • mpi3mr: Add io_uring interface support in I/O-polled mode commit

    • mpi3mr: Support Prepare for Reset event commit

  • ata: sata_sx4: add module parameter 'dimm_test' commit

  • ata: ahci: Add support for AMD A85 FCH (Hudson D4) commit

  • nvme: add 'iopolicy' module parameter commit

11.4. Drivers in the Staging area

  • media: atomisp: add Microsoft Surface 3 ACPI vars commit

  • media: max96712: Add basic support for MAX96712 GMSL2 deserializer commit

  • atomisp: add support for enum frame rate and sizes commit, commit

  • Add NVIDIA Tegra114 support to video decoder driver commit, commit, commit

  • media: cedrus: Add support for the D1 variant commit

  • fbtft: Remove fb_watterott driver commit

  • ralink-gdma: remove driver from tree commit

  • mt7621-dma: remove driver from tree commit

11.5. Networking

11.6. Audio

11.7. Tablets, touch screens, keyboards, mouses

  • goodix: add pen support commit

  • silead: add pen support commit

  • silead: add support for EFI-embedded fw using different min/max coordinates commit

  • HID
    • Add new Letsketch tablet driver commit

    • Add support for UGTABLET WP5540 commit

    • Add support for open wheel and no attachment to T300 commit

    • Add mapping for KEY_ALL_APPLICATIONS commit

    • Add mapping for KEY_DICTATE commit

    • apple: Add 2021 Magic Keyboard with fingerprint reader commit

    • apple: Add 2021 Magic Keyboard with number pad commit

    • apple: Add 2021 magic keyboard FN key mapping commit

    • apple: Add Magic Keyboard 2021 with fingerprint reader FN key mapping commit

    • apple: Report Magic Keyboard battery over USB commit

    • i2c-hid-of: Expose the touchscreen-inverted properties commit

    • logitech-dj: add new lightspeed receiver id commit

    • magicmouse: Report battery level over USB commit

11.8. TV tuners, webcams, video capturers

11.9. Universal Serial Bus

  • Introduce Xen pvUSB frontend (xen hcd) commit

  • dwc3: gadget: Support Multi-Stream Transfer commit

  • serial: ch341: add support for GW Instek USB2.0-Serial devices commit

  • serial: ftdi_sio: add support for Brainboxes US-159/235/320 commit

  • serial: option: add Telit LE910R1 compositions commit

  • serial: option: add ZTE MF286D modem commit

  • serial: option: add support for DW5829e commit

  • uhci: add aspeed ast2600 uhci support commit

11.10. Serial Peripheral Interface (SPI)

  • dw: Introduce Synopsys IP-core versions interface commit

11.11. Watchdog

11.12. CPU Frequency scaling

11.13. Device Voltage and Frequency Scaling

  • devfreq: Add a driver for the sun8i/sun50i MBUS commit

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

  • power
    • supply: max77976: add Maxim MAX77976 charger driver commit

    • Add charge_behaviour property (force-discharge, inhibit-charge) commit, commit, commit, commit

  • regulator
    • da9121: Add DA914x support commit

    • qcom-rpmh: Add support for PM8450 regulators commit

    • Introduce tps68470-regulator driver commit

    • qcom_spmi: Add pm8226 regulators commit

    • Add MAX20086-MAX20089 driver commit

11.15. Real Time Clock (RTC)

  • gamecube: Add a RTC driver for the GameCube, Wii and Wii U commit

  • Add driver for RTC in Sunplus SP7021 commit

  • rs5c372: Add RTC_VL_READ, RTC_VL_CLR ioctls commit

  • rv8803: Add support for the Epson RX8804 RTC commit

11.16. Pin Controllers (pinctrl)

  • Add Intel Thunder Bay pinctrl driver commit

  • freescale: Add i.MXRT1050 pinctrl driver support commit

  • ocelot: Extend support for lan966x commit

  • qcom-pmic-gpio: Add support for pm8019 commit

  • qcom: Add SDX65 pincontrol driver commit

  • qcom: Add SM8450 pinctrl driver commit

  • qcom: Add egpio feature support commit

  • qcom: sc7280: Add egpio support commit

  • renesas: rzg2l: Add support to get/set drive-strength and output-impedance-ohms commit

  • spmi-gpio: Add support for PM2250 commit

  • starfive: Add pinctrl driver for StarFive SoCs commit

11.17. Multi Media Card (MMC)

  • mmci: add hs200 support for stm32 sdmmc commit

  • dw_mmc: Add driver callbacks for data read timeout commit

  • jz4740: Support using a bi-directional DMA channel commit

  • dw_mmc-exynos: Add support for ARTPEC-8 commit

  • sdhci-esdhc-imx: Add sdhc support for i.MXRT series commit

  • sdhci-pci: Add PCI ID for Intel ADL commit

  • mmci: Add support for sdmmc variant revision v2.2 commit

11.18. Memory Technology Devices (MTD)

  • rawnand: renesas: Add new NAND controller driver commit

  • Introduce an expert mode for forensics and debugging purposes commit

11.19. Industrial I/O (iio)

  • Add reading "raw" attribute commit

  • adc: Add Xilinx AMS driver commit

  • adc:axp20x: add support for NTC thermistor commit

  • Add AD74413R driver commit, commit, commit

  • Add support for ADMV8818 commit, commit, commit, commit

  • dac: Add AD3552R driver support commit

  • dac:ad7293: add support for AD7293 commit

  • frequency: admv1013: add support for ADMV1013 commit

  • light: ltr501: Added ltr303 driver support commit

  • ltr501: Export near level property for proximity sensor commit

11.20. Multi Function Devices (MFD)

  • bd70528: Drop BD70528 support commit

  • da9062: Support SMBus and I2C mode commit

  • intel-lpss: Add Intel Lakefield PCH PCI IDs commit

11.21. Inter-Integrated Circuit (I2C + I3C)

11.22. Hardware monitoring (hwmon)

  • Add driver for NZXT RGB&Fan Controller/Smart Device v2 commit

  • Driver for Texas Instruments INA238 commit

  • adm1021: Improve detection of LM84, MAX1617, and MAX1617A commit

  • asus_wmi_ec_sensors: Support B550 Asus WMI commit

  • asus_wmi_sensors: Support X370 Asus WMI commit

  • f71882fg: Add F81966 support commit

  • jc42: Add support for ONSEMI N34TS04 commit

  • k10temp: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh commit

  • k10temp: Support up to 12 CCDs on AMD Family of processors commit

  • nct6775: add ROG STRIX B550-A/X570-I GAMING commit

  • ntc_thermistor: Add Samsung 1404-001221 NTC commit

  • pmbus: Add Delta AHE-50DC fan control module driver commit

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

  • pmbus: ir38064 Add support for IR38060, IR38164 IR38263 commit

  • pmbus: ir38064 Expose a regulator commit

11.23. General Purpose I/O (gpio)

  • amdpt: add new device ID and 24-pin support commit

  • msc313: Add support for SSD201 and SSD202D commit

  • sim: new testing module commit

  • tegra186: Add support for Tegra234 commit

  • tegra186: Add support for Tegra241 commit

  • xlp: Remove Netlogic XLP variants commit

  • bd70528: Drop BD70528 support commit

11.24. Leds

  • leds-fsg: Drop FSG3 LED driver commit

  • Add mt6360 driver commit

11.25. DMA engines

  • jz4780: Add support for the MDMA and BDMA in the JZ4760(B) commit

  • idxd: add knob for enqcmds retries commit

  • rcar-dmac: Add support for R-Car S4-8 commit

  • ti: k3-psil: Add support for J721S2 commit

  • jz4780: Support bidirectional I/O on one channel commit

11.26. Cryptography hardware acceleration

11.27. PCI

  • PCI: brcmstb: Augment driver for MIPs SOCs commit, commit, commit, commit

  • hv: Add arm64 Hyper-V vPCI support commit

  • imx: Add the imx8mm pcie support commit

  • mvebu: Add support for compiling driver as module commit

  • switchtec: Add Gen4 automotive device IDs commit

  • vmd: Add DID 8086:A77F for all Intel Raptor Lake SKU's commit

11.28. Non-Transparent Bridge (NTB)

  • ntb_hw_amd: Add NTB PCI ID for new gen CPU commit

11.29. Thunderbolt

11.30. Clock

  • Introduce clk-tps68470 driver commit

  • clk-fch: Add support for newer family of AMD's SOC commit

  • lan966x: Add lan966x SoC clock driver commit, commit

  • mediatek: add mt7986 clock support commit

  • qcom: Add Pdc, GCC and RPMh clock support for SDX65 commit, commit, commit, commit, commit, commit, commit

  • qcom: Add clock driver for SM8450 commit

  • qcom: rpmh: add support for SM8450 rpmh clocks commit

  • renesas: r8a779a0: Add SDnH clock to V3U commit

  • renesas: rcar-gen3: Add SDnH clock commit

  • starfive: Add JH7100 clock generator driver commit

  • sunxi-ng: Add support for the D1 SoC clocks commit

  • Add write operation for clk_parent debugfs node commit

  • clocksource: renesas-ostm: Add RZ/G2L OSTM support commit

  • clocksource: msc313e: Add support for ssd20xd-based platforms commit

  • clocksource: Add MStar MSC313e timer support commit

11.31. PHY ("physical layer" framework)

11.32. EDAC (Error Detection And Correction)

  • amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh commit

  • synopsys: Add support for version 3 of the Synopsys EDAC DDR commit

  • mce_amd: Add new SMCA bank types commit

  • amd64: Add support for family 19h, models 50h-5fh commit

11.33. Various

  • bus: mhi: pci_generic: Add new device ID support for ! for UniPhieT99W175 commit

  • bus: mhi: pci_generic: Introduce Sierra EM919X support commit

  • eeprom: at24: Add support for 24c1025 EEPROM commit

  • firmware: cs_dsp: Add support for rev 2 coefficient files commit

  • firmware: xilinx: instantiate xilinx event manager driver commit

  • gnss: add USB support commit

  • gnss: usb: add support for Sierra Wireless XM1210 commit

  • habanalabs
    • Add SOB information to signal submission uAPI commit

    • Add more info ioctls support during reset commit

    • Add new opcodes for INFO IOCTL commit

    • Add support for fetching historic errors commit

    • debugfs support for larger I2C transactions commit

    • Expand clock throttling information uAPI commit

    • Expose soft reset sysfs nodes for inference ASIC commit

    • Support hard-reset scheduling during soft-reset commit

    • sysfs support for two infineon versions commit

  • hwrng: cn10k - Add random number generator support commit

  • Add QCM2290 interconnect support commit, commit, commit, commit, commit

  • interconnect: qcom: Add EPSS L3 support on SC7280 commit

  • interconnect: qcom: Add MSM8996 interconnect provider driver commit

  • interconnect: qcom: Add SM8450 interconnect provider driver commit

  • iommu: arm-smmu-impl: Add SM8450 qcom iommu implementation commit

  • mailbox: qcom-ipcc: Support more IPCC instance commit

  • mei: bus: add client dma interface commit

  • memory: renesas-rpc-if: Add support for RZ/G2L commit

  • pcmcia: clean up dead drivers for CompuLab CM-X255/CM-X270 boards commit

  • powercap: intel_rapl: support new layout of Psys PowerLimit Register on SPR commit

  • remoteproc: Add Renesas rcar driver commit

  • reset: starfive-jh7100: Add StarFive JH7100 reset driver commit

  • spmi: mediatek: Add support for MT6873/8192 commit

  • spmi: mediatek: Add support for MT8195 commit

  • tpm: Add Upgrade/Reduced mode support for TPM2 modules commit

  • tty: Add support for Brainboxes UC cards commit

  • tty: serial: fsl_lpuart: Add i.MXRT1050 support commit

  • tty: serial: samsung: Enable console as module commit

12. List of Pull Requests

13. Other news sites

KernelNewbies: LinuxChanges (last edited 2022-03-20 23:11:54 by diegocalleja)