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.19 was released on Sunday, 31 Jul 2022.

Summary: This release adds optional support for IPv6 packets larger than 64KB; support AMD's SEV-SNP and Intel's TDX for more secure virtualized guests; support for a new LoongArch architecture; support for hundreds of millions of extended attributes per inode in XFS; support for ID mapping in overlayfs; support for proactive reclaim in memory control groups; support for NFS Courteous Server; support for ZSTD compressed firmware files; support for several new BPF features. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. More secure virtualization with AMD's SEV-SNP and Intel's TDX

These release incorporate two features that help to make existing encrypted virtualization (ie. hosts can't access the memory contents of virtualized guests) more secure:

  • - AMD Secure Nested Paging (SEV-SNP): Add to confidential guests the necessary memory integrity protection against malicious hypervisor-based attacks like data replay, memory remapping and others, thus achieving a stronger isolation from the hypervisor

    - Intel TDX: This release adds support for running Linux as a guest under Intel TDX, which provides encrypted guest memory support. TDX also includes memory encryption and integrity capabilities, like those of AMD's SEV-SNP Documentation

1.2. Jumbograms: IPv6 packets bigger than 64 KB

The maximum size of a standard IPv4/6 header is 64 KB. For high speed networking interfaces (400 GB), this maximum size is too small and the networking stack can't avoid having too much per-packet overhead. With the help of RFC 2675, it's possible to create the so called "jumbograms", which allow for packets much bigger than 64KB. This release incorporates supports for such packets. This feature is aimed mainly at local networks with intense network traffic, not the Internet, and can provide huge performance wins.

Recommended LWN article: Going big with TCP packets

Conference slides/video: BIG TCP

1.3. New architecture: LoongArch

This release adds initial support for the LoongArch architecture. LoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V. LoongArch includes a reduced 32-bit version (LA32R), a standard 32-bit version (LA32S) and a 64-bit version (LA64). LoongArch use ACPI as its boot protocol LoongArch-specific interrupt controllers (similar to APIC) are already added in the next revision of ACPI Specification (current revision is 6.4)

Documentation

1.4. Larger per-inode attribute limits in XFS

Some people want to use XFS to store hundreds of millions of xattrs per inode. This release adds an on-disk format change to allow these huge number of extended attributes. This change also increases the number of supported data extents per inode from 232 to 247, and a new logging feature is introduced that lays the foundation for future integration of attribute modifications as part of other atomic transactional operations.

1.5. ID mapping in overlayfs

ID mapping is a feature that lets you map a UID or GID to another one in a different mount. This release adds support for ID mapping in overlayfs itself, which is one of the file system where this feature is more likely to be used.

1.6. Proactive reclaim in memory control groups

This releases introduces a memcg interface to trigger memory reclaim on a memory cgroup. 'echo 10M > memory.reclaim'  will trigger reclaim in the target memory cgroup.

The reason why this interface has been added is that a userspace proactive reclaimer can continuously probe the memcg to reclaim a small amount of memory. This gives more accurate and up-to-date workingset estimation as the LRUs are continuously sorted and can potentially provide more deterministic memory overcommit behavior. The memory overcommit controller can provide more proactive response to the changing behavior of the running applications instead of being reactive. A userspace reclaimer's purpose in this case is not a complete replacement for kswapd or direct reclaim, it is to proactively identify memory savings opportunities and reclaim some amount of cold pages set by the policy to free up the memory for more demanding jobs or scheduling new jobs.

1.7. BPF improvements: dynamic pointers, typed pointers, libbpf USDT

As usual, there are many BPF related changes. Between many other features, this release includes support for:

- Dynamic pointers: A dynamic pointer (struct bpf_dynptr) is a pointer that stores extra metadata alongside the address it points to. This abstraction is useful in bpf given that every memory access in a bpf program must be safe.

- Typed pointers: It enables storing pointers of a certain type in BPF map, and extends the verifier to enforce type safety and lifetime correctness properties.

- libbpf support for USDT (User Statically-Defined Tracing) probes: While USDTs themselves are pretty complicated abstraction built on top of uprobes, for end-users USDT is as natural a primitive as uprobes themselves. And thus it's important for libbpf to provide best possible user experience when it comes to build tracing applications relying on USDTs. With enough diligence and BPF cookies it's possible to implement USDT support that feels as natural as tracing any uprobe.

1.8. NFS Courteous Server

This release implements the NFSv4 Courteous Server. Previously NFSD would purge open and lock state for an unresponsive client after one lease (typically 90 seconds). Now, after one lease period, another can open and lock those files and the unresponsive client's is purged; otherwise if the unresponsive client's open and lock is uncontended, the server retains that open and lock state for to 24 hours, allowing the client's workload to resume after a network partition

1.9. ZSTD compressed firmware files

This release adds support for ZSTD compressed firmware files, and support for userspace to initiate the firmware load when it needs to, instead of being always initiated by the kernel.

2. Core (various)

3. File systems

4. Memory management

5. Block layer

  • loop: support partitions without scanning commit

  • cdrom: mark CDROMGETSPINDOWN/CDROMSETSPINDOWN obsolete commit

  • virtio-blk: support polling I/O and mq_ops->queue_rqs() commit, commit

  • zram: add a huge_idle writeback mode commit

6. Tracing, perf and BPF

  • BPF
    • (FEATURED) Add support for dynamic pointers. A dynamic pointer (struct bpf_dynptr) is a pointer that stores extra metadata alongside the address it points to. This abstraction is useful in bpf given that every memory access in a bpf program must be safe. The verifier and bpf helper functions can use the metadata to enforce safety guarantees for things such as dynamically sized strings and kernel heap allocations. There are several uses cases for dynamic pointers in bpf programs. Some examples include: dynamically sized ringbuf reservations without extra memcpys, dynamic string parsing and memory comparisons, dynamic memory allocations that can be persisted in maps, and dynamic + ergonomic parsing of sk_buff and xdp_md packet data commit, commit, commit, commit, commit, commit

    • (FEATURED) Introduce typed pointer support in BPF maps commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Introduce access remote cpu elem support in BPF percpu map commit

    • Refine kernel.unprivileged_bpf_disabled behaviour commit

    • Bpf link iterator commit

    • Allow attach TRACING programs through LINK_CREATE command commit

    • Allow kfunc in tracing and syscall programs commit

    • Extend batch operations for map-in-map bpf-maps commit

    • Add source ip in bpf tunnel key commit, commit, commit

    • Speed up symbol resolving in kprobe multi link commit, commit, commit, commit

  • libbpf
  • bpftool: add program & link type names commit, commit, commit

  • bpftool: Use sysfs vmlinux when dumping BTF by ID commit

  • perf
    • annotate: Add --percent-limit option commit

    • lock: Add -t/--thread option for report commit

    • Add --off-cpu option to enable the off-cpu profiling with BPF. It'd use a bpf_output event and rename it to "offcpu-time". Samples will be synthesized at the end of the record session using data from a BPF map which contains the aggregated off-cpu time at context switches commit, commit, commit, commit, commit, commit

    • script python: Add script for CoreSight disassembly commit, commit

    • stat: add user_time and system_time tool events commit, commit, commit

    • perf stat: Support metrics with hybrid events commit, commit, commit

  • tracing: Introduce trace clock tai commit, commit, commit

7. Virtualization

8. Cryptography

  • random: Various improvements merge

9. Security

10. Networking

11. Architectures

11.1. New LoongArch architecture

11.2. X86

11.3. ARM

11.4. RISCV

11.5. S390

  • Add support for Processor Activity Instrumentation commit

  • Add an Ultravisor(UV) device letting the userspace send some Ultravisor calls to the UV. Currently two calls are supported. Query Ultravisor Information (QUI) and Receive Attestation Measurement (Attest[ation]) commit

  • crypto: add crypto library interface for ChaCha20 commit

  • Add KCSAN instrumentation to barriers and spinlocks commit

  • Add vdso randomization commit

  • ap: uevent on apmask/aqpmask change commit

  • perf list: Add IBM z16 event description for s390 commit

11.6. MIPS

  • Octeon: add SNIC10E board commit

11.7. M68K

  • Add support for elf-fdpic commit, commit, commit, commit

  • Introduce a virtual m68k machine based on Goldfish interfaces defined by Google for Android simulator. It uses Goldfish-rtc (timer and RTC), Goldfish-pic (PIC) and Goldfish-tty (for early tty). The machine is created with 128 virtio-mmio buses, and they can be used to add serial console, GPU, disk, NIC, HID, hwrng, 9PFS...the virtual m68k machine has been merged in QEMU and will be available with the release 6.0 commit

11.8. OPENRISC

  • Add support for liteuart emergency printing commit

  • Move to ticket-spinlock commit

11.9. POWERPC

11.10. UM

  • Enable ARCH_HAS_GCOV_PROFILE_ALL commit

  • daemon: Make default socket configurable commit

  • xterm: Make default terminal emulator configurable commit

11.11. XTENSA

11.12. ARC

11.13. H8300

  • Remove the h8300 architecture commit

12. Drivers

12.1. Graphics

12.2. Power Management

  • ACPI
    • DPTF: Support Meteor Lake commit

    • SPCR: Add support for Nvidia 16550-compatible port subtype commit

    • processor: idle: Expose max_cstate/nocst/bm_check_disable read-only in sysfs commit

    • Add support for ARM Performance Monitoring Unit Table commit

    • Add support for the Windows 11 _OSI string commit

  • cpuidle: PSCI: Improve support for suspend-to-RAM for PSCI OSI mode commit

  • EFI
    • Allow runtime services to be re-enabled at boot on RT kernels commit

    • Provide access to secrets injected into the boot image by CoCo hypervisors (COnfidential COmputing) commit, commit, commit, commit

  • thermal
    • k3: Add hwmon support commit

    • qcom: Add support for PMIC5 Gen2 ADCTM commit

    • qcom: Add support for multiple generations of devices commit

    • int340x: Add Meteor Lake PCI device ID commit

    • intel: pch: enhance overheat handling commit

    • k3_j72xx_bandgap: Add the bandgap driver support commit

  • tools/power turbostat
    • Add Power Limit4 support commit

    • Allow -e for all names commit

    • Support thermal throttle count print commit

12.3. Storage

  • ahci: Add a generic 'controller2' RAID id commit

  • nvme-apple: Add initial Apple SoC NVMe driver commit

  • nvme: add support for TP4084 - Time-to-Ready Enhancements commit

  • scsi: core: Increase max device queue_depth to 4096 commit

  • scsi: lpfc: Add support for ATTO Fibre Channel devices commit

  • scsi: lpfc: Add support for VMID tagging of NVMe I/Os commit

  • scsi: mpi3mr: Add bsg device support commit

  • scsi: mpi3mr: Add shost related sysfs attributes commit

  • scsi: mpi3mr: Add support for MPT commands commit

  • scsi: mpi3mr: Add support for NVMe passthrough commit

  • scsi: mpi3mr: Add support for PEL commands commit

  • scsi: mpi3mr: Add support for driver commands commit

  • scsi: mpi3mr: Add target device related sysfs attributes commit

  • scsi: mpi3mr: Expose adapter state to sysfs commit

  • scsi: scsi_debug: Add gap zone support commit

  • scsi: storvsc: Remove support for Hyper-V 2008 and 2008R2/Win7 commit

  • scsi: target: Allow changing dbroot if there are no registered devices commit

12.4. Drivers in the Staging area

12.5. Networking

12.6. Audio

12.7. Tablets, touch screens, keyboards, mouses

  • Add Raspberry Pi Sense HAT joystick driver commit

  • Add support for Azoteq IQS7222A/B/C commit

  • pm8941-pwrkey - add software key press debouncing support commit

  • pm8941-pwrkey - add support for PON GEN3 base addresses commit

  • sun4i-lradc-keys - add optional clock/reset support commit

  • sun4i-lradc-keys - add support for R329 and D1 commit

  • sun4i-lradc-keys - add wakeup support commit

  • HID
    • Add support for Mega World controller force feedback commit

    • amd_sfh: Add physical location to HID device commit

    • amd_sfh: Add support for sensor discovery commit

    • intel-ish-hid: ipc: add ADL and RPL device id commit

    • lenovo: Add support for ThinkPad TrackPoint Keyboard II commit

    • multitouch: Add support for Google Whiskers Touchpad commit

    • uclogic: Add pen support for XP-PEN Star 06 commit

    • uclogic: Add support for Huion Q620M commit

    • uclogic: Add support for Huion touch ring reports commit

    • uclogic: Add support for bitmap dials commit

    • uclogic: Add support for touch ring reports commit

    • uclogic: Allow three frame parameter sets commit

    • uclogic: Support disabling pen usage commit

    • wacom: Adding Support for new usages commit

12.8. TV tuners, webcams, video capturers

12.9. Universal Serial Bus

  • dwc2: Add OTG support for Ingenic SoCs commit

  • dwc3: Add AM62 USB wrapper driver commit

  • dwc3: xilinx: Add gpio-reset support commit

  • gadget: Add a new bus for gadgets commit

  • hcd: Add support for deferring roothub registration commit

  • serial: option: add Quectel BG95 modem commit

  • typec: mux: Add On Semi fsa4480 driver commit

12.10. Serial Peripheral Interface (SPI)

  • Add driver for MTK SPI NAND Flash Interface commit

  • Support hclk commit

  • aspeed: Add support for the AST2400 SPI controller commit

  • ingenic: Add support for use GPIO as chip select line commit

  • mediatek: add single/quad mode support commit, commit

  • omap2-mcspi: add support for interword delay commit

12.11. Watchdog

  • Add Renesas RZ/N1 Watchdog driver commit

  • Add watchdog driver for Sunplus SP7021 commit

  • bcm7038_wdt: Support BCM6345 compatible string commit

  • hpe-wdt: Introduce HPE GXP Watchdog commit

  • mediatek: mt8186: add wdt support commit

  • mtk_wdt: mt7986: Add toprgu reset controller support commit

12.12. Serial

12.13. CPU Frequency scaling

  • mediatek: Cleanup and support MT8183 and MT8186 commit, commit, commit

  • tegra194: Add support for Tegra234 commit

  • Enable EAS for CPPC/ACPI based systems commit, commit

  • CPPC: Enable fast_switch commit

  • intel_pstate: Support Sapphire Rapids OOB mode commit

12.14. Device Voltage and Frequency Scaling

  • Add cpu based scaling support to passive governor with required-opp property commit, commit, commit, commit

  • PM / devfreq: rk3399_dmc: Support new disable-freq properties commit

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

  • Add error flags to sysfs attributes commit

  • mt6366: Add support for MT6366 regulator commit, commit

  • rt5759: Add support for Richtek RT5759 DCDC converter commit

12.16. Real Time Clock (RTC)

12.17. Pin Controllers (pinctrl)

  • mediatek: Add pinctrl driver for MT6795 Helio X10 commit

  • mvebu: pinctrl driver for 98DX2530 SoC commit

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

  • qcom: Add SC7280 lpass pin configuration commit

  • renesas: r8a77990: Add drive-strength commit

  • renesas: rzg2l: Add RZ/G2UL support commit

  • rockchip: add rk3588 support commit

  • rockchip: support deferring other gpio params commit

  • rockchip: support setting input-enable param commit

12.18. Multi Media Card (MMC)

  • Support zeroout using TRIM for eMMC commit

  • renesas_sdhi: R-Car V3H ES2.0 gained HS400 support commit

  • sdhci-msm: Add SoC specific compatibles commit

12.19. Memory Technology Devices (MTD)

  • cfi_cmdset_0002: Add S29GL064N ID definition commit

  • rawnand: add support for Toshiba TC58NVG0S3HTA00 NAND flash commit

  • rawnand: gpmi: Add large oob bch setting support commit

  • rawnand: kioxia: Add support for TH58NVG3S0HBAI4 commit

  • spi-nor: support eon en25qh256a variant commit

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

  • spinand: add support for more GD SPI NANDs commit, commit, commit, commit, commit

  • spinand: Add support for XTX XT26G0xA commit

  • maps: ixp4xx: Drop driver commit

12.20. Industrial I/O (iio)

  • accel: add support for LIS302DL variant commit

  • adc: ad7124: add sequencer support commit

  • adc: ad7192: add sequencer support commit

  • adc: ad_sigma_delta: Add sequencer support commit

  • adc: sc27xx: add support for PMIC sc2720 and sc2721 commit

  • adc: sc27xx: add support for PMIC sc2730 commit

  • adc: ti-ads1015: Add TLA2024 support commit

  • imu: inv_mpu6050: Add support for ICM-20608-D commit

  • imu: st_lsm6dsx: add support to ASM330LHHX commit

12.21. Multi Function Devices (MFD)

  • intel-lpss: Add support for ADL-P i2c6 and i2c7 commit

12.22. Pulse-Width Modulation (PWM)

  • pwm-mediatek: Add support for MediaTek Helio X10 MT6795 commit

  • pwm-cros-ec: Add channel type support commit

  • sunplus-pwm: Add Sunplus SoC SP7021 PWM Driver commit

  • Add support for Xilinx AXI Timer commit

12.23. Hardware monitoring (hwmon)

  • Add driver for the Microchip LAN966x SoC commit

  • adt7475: Add support for pin configuration commit

  • aquacomputer_d5next: Add support for Aquacomputer Farbwerk commit

  • aquacomputer_d5next: Add support for Aquacomputer Octo commit

  • asus-ec-sensors: add support for board families commit, commit, commit, commit

  • asus-ec-sensors: Add T_Sensor for ASUS WS X570-ACE commit

  • asus-ec-sensors: add ProArt X570 Creator WIFI board commit

  • bt1-pvt: use generic polynomial functions commit

  • dell-smm: Add cooling device support commit

  • jc42: Add support for S-34TS04A commit

  • lm75: Add Atmel AT30TS74 support commit

  • nct6775: Add i2c driver commit

  • nct6775: add ASUS PRO H410T / PRIME H410M-R / ROG X570-E GAMING WIFI II commit

  • pmbus: Add support for Infineon Digital Multi-phase xdp152 family controllers commit

  • tmp401: Add support of three advanced features commit

  • asus-ec-sensors: add ROG STRIX X570-E GAMING WIFI II commit

12.24. General Purpose I/O (gpio)

  • adp5588: Remove support for platform setup and teardown callbacks commit

  • rcar: Add R-Car Gen4 support commit

  • realtek-otto: Add RTL930x support commit

  • realtek-otto: Add RTL931x support commit

  • realtek-otto: Support per-cpu interrupts commit

  • realtek-otto: Support reversed port layouts commit

12.25. Leds

  • Add PWM multicolor driver commit

  • Add pm8350c support to Qualcomm LPG driver commit

  • Add driver for Qualcomm LPG commit

12.26. DMA engines

  • PTDMA: support polled mode commit

  • dw: dmamux: Introduce RZN1 DMA router support commit

  • qcom: gpi: Add SM8350 support commit

  • sun6i: Add support for 34-bit physical addresses commit

  • sun6i: Add support for the D1 variant commit

  • tegra: Add tegra gpcdma driver commit

12.27. Hardware Random Number Generator (hwrng)

  • mpfs: Add polarfire soc hwrng support commit

12.28. Cryptography hardware acceleration

12.29. PCI

  • hv: Add validation for untrusted Hyper-V values commit

  • mvebu: Add support for sending Set_Slot_Power_Limit message commit

  • qcom: Add SM8150 SoC support commit

  • rockchip-dwc: Add legacy interrupt support commit

12.30. Thunderbolt

  • Add support for XDomain lane bonding commit

  • Link USB4 ports to their USB Type-C connectors commit

12.31. Clock

  • en7523: Add clock driver for Airoha EN7523 SoC commit

  • imx8mn: add GPT support commit

  • imx8mp: add clkout1/2 support commit

  • imx: add mcore_booted module paratemter commit

  • mediatek: Add MT8186 mcusys clock support commit

  • mediatek: Add MT8186 topckgen clock support commit

  • qcom: add sc8280xp GCC driver commit

  • qcom: lpass: Add support for LPASS clock controller for SC7280 commit

  • renesas: Add RZ/V2M support using the rzg2l driver commit

  • renesas: Add support for RZ/G2UL SoC commit

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

  • renesas: r9a07g044: Add M1 clock support commit

  • renesas: rzg2l: Add support for RZ/V2M reset monitor reg commit

  • stm32: Introduce STM32MP13 RCC drivers (Reset Clock Controller) commit

  • stm32mp13: add stm32_gate management commit

  • sunxi-ng: h616: Add PLL derived 32KHz clock commit

  • clocksource: timer-gxp: Add HPE GXP Timer commit

  • clocksource: Add a goldfish-timer clocksource commit

12.32. PHY ("physical layer" framework)

  • qcom-qmp: Add support for SDX65 QMP PHY commit

  • qcom-qmp: Add SM6350 UFS PHY support commit

  • cadence: Sierra: Add TI J721E specific PCIe multilink lane configuration commit

12.33. EDAC (Error Detection And Correction)

  • synopsys: Add driver support for i.MX platforms commit

12.34. Various

  • bus
  • SCMI: miscellaneous changes to support basically all the SCMIv3.1 specification commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • firmware: xilinx: Add feature check support in ZU+ commit, commit, commit, commit

  • firewire: assist unit driver to compute packet time stamp commit, commit, commit

  • firmware: mtk: add adsp ipc protocol for SOF commit, commit, commit

  • habanalabs
    • gaudi: add debugfs to fetch internal sync status commit

    • Add separate poll interval value for protocol commit

    • Add device memory scrub ability through debugfs commit

    • Add support for notification via eventfd commit

    • Add user API to get valid DRAM page sizes commit

    • Expose compute ctx status through info ioctl commit

    • Support debugfs Byte access to device DRAM commit

    • Unified memory manager infrastructure commit

  • Introduce new subsystem called hardware timestamping engine (HTE). It offers functionality such as timestamping through hardware means in realtime commit, commit, commit, commit, commit, commit, commit, commit

  • interconnect
    • qcom: Add SC8280XP interconnect provider commit

    • qcom: Add SDX65 interconnect provider driver commit

  • ipmi
    • Add a sysfs count of total outstanding messages for an interface commit

    • Add a sysfs interface to view the number of users commit

  • mailbox
    • mediatek: support mt8186 adsp mailbox commit

    • tegra-hsp: Add 128-bit shared mailbox support commit

  • mei: add support for graphics system controller (gsc) devices commit

  • memory: tegra: Add Tegra234 support commit

  • nvmem
    • Add Apple eFuse driver commit

    • sfp: Add support for TA 2.1 devices commit

  • of: Support more than one crash kernel regions for kexec -s commit

  • powercap
    • RAPL: Add Power Limit4 support for RaptorLake commit

    • intel_rapl: add support for ALDERLAKE_N commit

    • intel_rapl: add support for RaptorLake commit

  • ptp
  • remoteproc: imx_rproc: Support i.MX93 commit

  • remoteproc: qcom: pas: Add MSM8226 ADSP support commit

  • reset: simple: Add AST2600 compatible commit

  • tpm: cr50: Add new device/vendor ID 0x504a6666 commit

  • dma: omap: hide legacy interface commit

  • extcon
    • int3496: Add support for binding to plain platform devices commit

    • int3496: Add support for controlling Vbus through a regulator commit

    • ptn5150: Add usb role class support commit

    • sm5502: Add support for SM5703 commit

13. List of Pull Requests

14. Other news sites

KernelNewbies: LinuxChanges (last edited 2022-08-07 21:37:39 by diegocalleja)