Linux 5.16 Release – Main Changes, Arm, RISC-V and MIPS architectures

Linus Torvalds has just announced the release of Linux 5.16:

Not a lot here since -rc8, which is not unexpected. We had that extra week due to the holidays, and it’s not like we had lots of last-minute things that needed to be sorted out.

So this mainly contains some driver fixes (mainly networking and rdma), a cgroup credential use fix, a few core networking fixes, a couple of last-minute reverts, and some other random noise. The appended shortlog is so small that you might as well scroll through it.

This obviously means that the merge window for 5.17 opens tomorrow, and I’m happy to say I already have several pending early pull requests. I wish I had even more, because this merge window is going to be somewhat painful due to unfortunate travel for family reasons. So I’ll be doing most of it on the road on a laptop – something I generally try to avoid.

That said, the merging part of the merge window works perfectly well on a laptop, it’s just that I normally really want to do more local build testing between merges than a laptop really allows me to do. So the main downside during travel is that I end up relying much more on the automated build testing in the cloud. And so really hope that everything has been properly cooking in linux-next so that there are no unnecessary issues that pop up when things hit my tree.

Of course, realistically our automated build testing is so good anyway, and people have been pretty good about linux-next, that maybe my local builds aren’t _that_ important. I do end up occasionally hitting issues that should never have made it as far as my tree, but it’s not like it’s a common – or generally serious – issue.

Knock wood.

Anyway, I don’t expect any real issue, but I’ll probably be jetlagged and in odd timezones, so my response time might be “variable”.

But hey, before that merge window even opens, you still have some time to give a shiny new kernel release some TLC and testing.

Linus

The earlier Linux 5.15 was an LTS release that added an  NTFS file system implementation distributed by Paragon Software with read/write support, ksmbd in-kernel SMB 3 server, DAMON (Data Access MONitor) lightweight mechanism to monitor the memory access pattern of specific user-space processes, and much more.

Linux 5.16 release

Some interesting updates and additions to the Linux 5.16 kernel include:

  • File system health reporting – The kernel adds a new FAN_FS_ERROR fanotify event type for file system-wide error reporting that is meant to be used by file system health monitoring daemons. Ext-4 is the only file system that supports this interface at this time. Check out the documentation for further details.
  • Faster memory management with the memory folios infrastructure – The available RAM is split into small units, called pages, whose size id often expressed in KB. But many systems come with several tens of GB of RAM, resulting in a large, hard-to-manage amount of pages. Linux 5.16 kernel introduces the concept of page folios, which are like compound pages, but with better semantic, and can help improve performance in common workloads. “page folios” have been controversial, and some have opposed it. You can read an article on LWN.net or watch a video for more details.
  • Faster Wine and Linux game performance with a new futex_waitv() system call – futex_waitv(2) allows waiting on multiple futexes with a single system call. Its main use case is emulating Windows’ “WaitForMultipleObjects” call, which allows Wine to improve the performance of Windows Games, but native Linux games can also benefit from this interface. Read the documentation for more info.

Arm changes in Linux 5.16

  • Allwinner
    • Allwinner R329 – Watchdog driver
    • Device tree updates:
      • DT schema fixes
      • I2S support for the R40
      • HDMI support for the Pinetab
      • devfreq support for the A64 GPU
  • Rockchip
    • Add support for Power Off to Rockchip RK817 PMIC
    • ASoC – Add support for Rockchip RV1126 and RK3568
    • Adds Rockchip RK3566/RK3568
    • Merge v5 of Rockchip I2S/TDM controller
    • Device tree
      • Add Rockchip SoC PCIe controller DT bindings
      • Enable SFC for Odroid Go Advance, PX30
      • enable spdif on Quartz64 A
    • New boards and devices
      • Firefly ROC-RK3399-PC-PLUS SBC found in Station P1 mini PC
      • Firefly ROC-RK3328-PC SBC found in Station M1 Geek PC
  • Amlogic
    • Amlogic Meson6, Meson8, Meson8b and Meson8m2 have an ARC core to aid in resuming the system after suspend, a new remoteproc driver for booting this core is introduced.
    • Clock driver – Update video path related clocks for Amlogic meson8
    • Minor cleanups, and the addition of the S905Y2 SoC ID
    • Amlogic ARM64 DT changes for Linux 5.16:
      • add Ethernet PHY reset line for ODROID-C4/HC4
      • add audio playback nodes to rbox-pro
      • Fix the pwm regulator supply properties
      • meson-g12b-odroid-n2: add missing 5v regulator gpio
    • New boards
      • Radxa Zero SBC (S905Y2)
      • Jethub D1 (A113X) & H1 (S905W) home automation controllers
  • Samsung
    • Add support for Samsung Exynos Auto V9
    • clk driver updates
      • Initial clock driver for the Exynos850 SoC
      • Refactoring of the CPU clock code and conversion of Exynos5433 CPU clock driver to the platform driver
      • A few conversions to devm_platform_ioremap_resource()
      • Updates of the Samsung Kconfig help text
    • Minor fix for a theoretical issue when handling IRQ setup code errors in  S3C24xx and cleanup for S3C64xx.
    • DTS ARM changes for Linux 5.16
      • Minor cleanups – from undocumented or unused properties, coding style
      • Add chassis-type property
    • DTS ARM64 changes
      • Match Exynos5433 DTS with dtschema.
      • Add basic support for Exynos Auto v9 SoC and SADK (Samsung Automotive Development Kit) board. The Exynos Auto v9 is a design for automotive for In-vehicle Infotainments (IVI) and Advanced Driver-Assistance Systems (ADAS).
      • Add chassis-type property.
      • Add ChipID node to ExynosAutov9 DTSI.
  • Qualcomm
    • Support for Qualcomm Snapdragon 690 (aka SM6350)
    • Support for Snapdragon 750G (SM7225) as found in Fairphone 4
    • Pinctrl
      • New subdrivers for the Qualcomm SM6350, QCM2290, and PM6350
      • Convert the Qualcomm PMIC SSBI and SPMI MPP GPIO driver to use hierarchical interrupts.
      • Convert the Qualcomm PMIC MPP device tree bindings to YAML
      • Fix a Kconfig issue in the Qualcomm driver, implement some Qualcomm SDM845 dual-edge errata, fix register offsets for UFS and SDC in the Qualcomm SM8350 driver
    • Clock driver
      • GCC and RPMcc support for Qualcomm QCM2290 SoCs
      • GCC support for Qualcomm MSM8994/MSM8992 SoCs
      • LPASSCC and CAMCC support for Qualcomm SC7280 SoCs
    • Add entry for Qualcomm NAND controller driver
    • Qualcomm PCIe controller driver:
      • Add SC8180x compatible string
      • Add endpoint controller driver and DT binding
      • Restructure to use of_device_get_match_data()
      • Add SC7280-specific pcie_1_pipe_clk_src handling
    • Networking
      • Qualcomm Ethernet switch (qca8k): support for QCA8328
      • Various updates to Qualcomm WiFi (ath11k) – Support for 80P80 and 160 MHz bandwidths, support channel 2 in 6 GHz band, etc…
      • Qualcomm phone SoC WiFi (wcn36xx) – Enable Idle Mode Power Save (IMPS) to reduce power consumption during idle
    • SPI driver – Qualcomm SC7280 and SC7180
    • PHY – Qualcomm QCM2290 USB2 and USB3 support
    • Added Qualcomm “sleep stats” driver, which aids the efforts of bringing various Qualcomm platforms into low power mode.
    • ARM64 DTS updates for Linux 5.16
      • Cleanup fixes for MSM8916
      • MSM8998  – Descriptions for the multimedia clock controller and iommu,  GPU and its dedicated IOMMU.
      • IPA6018 – Added USB controller and PHY
      • IPQ8074 – Description of the SPMI controller.
      • SC7280 gains QSPI, low speed (i2c/spi/uart), GPU, thermal zones, modem, CPU topology and updated memory map.
      • SDM845 – Increase the throttling temperature of the hardware from ~70C to 95C, with up to 30% improvement in benchmarks as result. Relying on hardware throttling and
        thermal pressure, the CPU cooling devices are dropped.
      • Etc..
    • ARM64 defconfig updates:
      • Disabled firmware loads userspace fallback
      • Enables the new limits driver, which controls the hardware-based thermal mitigation on a range of Qualcomm platforms.
      • Enables prima/pronto WiFi and Bluetooth drivers
      • Enable SC7280 drivers needed to boot the platform
    • New devices & boards
      • 11x new smartphones including Fxtec Pro1 QX1000, Sony Xperia XZ1, Xperia XZ1 Compact, Xperia XZ Premium, Xperia 10 III, Xiaomi Mi 5 and Xiaomi Mi Note 2
      • 3x additional Chromebooks
  • MediaTek
    • PCIe – Add MediaTek MT7621 PCIe host controller driver and DT binding
    • MediaTek WiFi (mt76)
      • MT7921 – ASPM, 6GHz, SDIO, and testmode support
      • MT7915 – LED and TWT support
    • Bluetooth driver support for MediaTek MT7922 and MT7921
    • Mediatek improves support for the MT81xx SoCs used in Chromebooks as well as the MT76xx networking SoCs
  • Other new Arm hardware platforms and SoCs (Summary as there were 60 new boards this time)
    • Apple – M1 gain support for PCI and pinctrl, getting a bit closer to a usable system out of the box.
    • Aspeed – Two additional server boards using AST2600 as BMC
    • Broadcom – several Cisco Meraki wireless controllers, along with two new boards
    • Intel – New board added to the Intel Arria SoC FPGA family
    • Marvell – Armada 381-based network switch  and MOCHAbin 7040 development board
    • Microchip – SAMA5D29 SoC, LAN966 SoC, two board files added for the older at91sam9g20 SoC
    • NXP
      • S32G2 automotive SoC
      • 2x i.MX6 based ebook readers, and three additional development boards
    • STMicroelectronics – STM32MP13 SoC family along with a reference board
    • Renesas – New versions of their R-Car Gen3 SoCs
    • Texas Instruments – Three new boards with K3 SoC.
    • Toshiba – Board for the Visconti family
    • Xilinx – Five new ZynqMP based machines

Changelog for RISC-V in Linux 5.16

Some changes in Linux 5.16 specific to the RISC-V architecture

  • Allwinner D1 – Watchdog driver
  • DT updates for the SiFive HiFive Unmatched, that fix the regulator handling
  • A pair of fixes for both the SiFive Hifive Unleashed and Unmatched, that correctly hook up the MMC card detect signal.
  • Support for time namespaces in the VDSO, along with some associated cleanups.
  • Support for building rv32 randconfigs.
  •  Improvements to the XIP port that allow larger kernels to function
  •  Various device tree cleanups for both the SiFive and Microchip boards
  • A handful of defconfig updates, including enabling Nouveau (That’s GPU support!).

MIPS in Linux 5.16

There were also a few minor changes for the MIPS architecture:

  • Added printing of CPU options for /proc/cpuinfo
  • Removed support for Netlogic SOCs
  • Fixes and cleanup
    • Build fix for ZSTD enabled configs
    • Fix for preempt warning
    • Fix for loongson FTLB detection
    • Fix for page table level selectionKernelNewbies website
    • Wire futex_waitv syscall
    • Build fixes for lantiq and bcm63xx configs
    • yamon-dt bugfix

For a more complete Linux 5.16 changelog, you can read the full commit comments,  generated with the command git log v5.15..v5.16-rc8 --stat, or check out the summary on KernelNewbies website.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
0 Comments
Advertisement