不久前,Linus Torvalds对外宣布 Linux 5.16 发布了:
由于有额外的一周新年假期,自 -rc8 更新以来的内容并不多,这在意料之中。而且我们需要紧急处理的事情也不是很多。
新版本主要内容包含一些驱动程序修复(主要是网络和 rdma)、一个 cgroup 凭证使用的修复、一些核心网络修复、两个last-minute reverts,以及一些其他零散内容。附加的短日志也非常小,你们可以直接滚动浏览它。
这意味着 5.17 的合并窗口在 1月10号会打开,针对这一点我很激动地跟你们说我已经提交了几个未决的早期pull请求了。其实我希望我们能完成更多,由于我们还是需要家庭旅行,这个合并窗口其实还是会有些痛苦的。所以我会在路上用笔记本电脑做大部分事情,当然通常来说我会尽量避免这样做。
也就是说,合并窗口的合并部分在笔记本电脑上运行得是非常好的,只是我常常想在合并之间做更多的本地构建测试,这与在笔记本工作相比,可以让我做更多的测试。因此,旅行期间的主要缺点是我最终更多地依赖于云中的自动构建测试。所以真的希望一切都在 linux-next 中正常运行,这样当事情发生在我的tree上时就不会出现不必要的问题。
其实,我们的自动化构建测试无论如何也都是非常好的,而且人们对 linux-next 的评价也非常好,所以也许我的本地构建并不那么重要。但我确实偶尔会遇到一些本不应该出现在我的tree上的问题,当然这并不常见,也不是很严重的问题。
无论如何,我觉得应该不会有任何真正的问题,了但我可能会有时差或在一些奇怪的时区,所以我回复你们的时间应该是“可变的”。
另外,合并窗口甚至打开之前,你仍然有一些时间来为新内核版本提供一些 TLC和测试。
—Linus
早期的Linux 5.15是一个 LTS 版本,它添加了由 Paragon Software 分发的 NTFS 文件系统实现,具有读/写支持、ksmbd 内核 SMB 3 服务器、DAMON(数据访问监控器)轻量级机制监控特定用户的内存访问模式和空间过程等。
下面是Linux 5.16内核一些有趣的更新和补充:
- 文件系统健康报告– 内核为文件系统范围的错误报告添加了一个新的 FAN_FS_ERROR fanotify 事件类型,主要是为了在供文件系统健康监控守护的进程中使用。Ext-4 是目前唯一支持该接口的文件系统。你们查看文档获取更多详细信息
- 使用内存组合基础架构加快内存管理– 可用 RAM 被分成小单元,称为页面,其大小 id 通常以 KB 表示。但是许多系统都配备了几十 GB 的 RAM,导致页面数量庞大且难以管理。Linux 5.16 内核引入了页面作品集的概念,它类似于复合页面,不过具有更好的语义,这有助于提高常见的工作负载性能。“page folios”其实一直存在争议,有些人反对它。你们可以通过阅读LWN.net上的文章或观看视频了解更多
- 使用新的 futex_waitv()系统调用提高了Wine 和 Linux 的游戏性能– futex_waitv(2) 允许通过单个系统调用等待多个 futex。它的主要用例是模拟 Windows 的“WaitForMultipleObjects”调用,它允许 Wine 提高 Windows 游戏的性能,但本地 Linux 游戏也可以从这个接口中受益。同样,你们可以通过阅读该文档以获取更多信息
Linux 5.16中的Arm变化
- 全志
- 全志 R329 – 看门狗驱动
- 设备树更新:
- DT 架构修复
- R40 的 I2S 支持
- Pinetab 的HDMI 支持
- 对 A64 GPU 的 devfreq 支持
- 瑞芯微
- 为瑞芯微 RK817 PMIC 添加断电支持
- ASoC – 添加对瑞芯微 RV1126 和 RK3568 的支持
- 添加瑞芯微RK3566/RK3568
- 合并瑞芯微 I2S/TDM 控制器 v5
- 设备树
- 添加 Rockchip SoC PCIe 控制器 DT 绑定
- 为Odroid Go Advance, PX30启用 SFC
- 在 Quartz64 A 上启用 spdif
- 新开发板和设备
- Station P1 mini PC 中的Firefly ROC-RK3399-PC-PLUS SBC
- Station M1 Geek PC中的Firefly ROC-RK3328-PC SBC
- 晶晨
- Amlogic Meson6、Meson8、Meson8b 和 Meson8m2 有一个 ARC 内核来帮助在挂起后恢复系统,引入了一个新的 remoteproc 驱动程序来启动这个内核。
- 时钟驱动程序– 更新 Amlogic meson8 的视频路径相关时钟
- 少量清理,并添加了 S905Y2 SoC ID
- 针对 Linux 5.16 的 Amlogic ARM64 DT 更改:
- 为 ODROID-C4/HC4 添加以太网 PHY 复位线
- 将音频播放节点添加到 rbox-pro
- 修复 pwm 稳压器电源属性
- meson-g12b-odroid-n2:添加缺少的 5v 稳压器 gpio
- 新开发板
- Radxa ZeroSBC (S905Y2)
- Jethub D1 (A113X) & H1 (S905W) 家庭自动化控制器
- 三星
- 添加对三星 Exynos Auto V9 的支持
- clk 驱动程序更新
- Exynos850 SoC 的初始时钟驱动程序
- 重构 CPU 时钟代码并将 Exynos5433 CPU 时钟驱动程序转换为平台驱动程序
- 对 devm_platform_ioremap_resource() 的一些转换
- 三星 Kconfig 帮助文本的更新
- 修复了在S3C24xx中处理IRQ设置代码错误时的理论问题,并清理了S3C64xx。
- Linux 5.16 的 DTS ARM 更改
- 次要清理– 来自未记录或未使用的属性、编码风格
- 添加机箱类型属性
- DTS ARM64 变化
- 将 Exynos5433 DTS 与 dtschema 匹配
- 添加对 Exynos Auto v9 SoC 和 SADK(三星汽车开发套件)板的基本支持。Exynos Auto v9 是针对车载信息娱乐系统 (IVI) 和高级驾驶辅助系统 (ADAS) 的汽车设计
- 添加机箱类型属性
- 将 ChipID 节点添加到 ExynosAutov9 DTSI。
- 高通
- 支持高通Snapdragon 690(又名 SM6350)
- 支持Fairphone 4 中的Snapdragon 750G (SM7225)
- Pinctrl
- 高通SM6350、QCM2290 和 PM6350 的新子驱动程序
- 转换高通PMIC SSBI 和 SPMI MPP GPIO 驱动程序以使用分层中断。
- 将高通PMIC MPP 设备树绑定转换为 YAML
- 修复高通驱动程序中的 Kconfig 问题,实施一些高通SDM845 双边勘误表,修复 高通 SM8350 驱动程序中 UFS 和 SDC 的寄存器偏移
- 时钟驱动器
- GCC 和 RPMcc 支持高通QCM2290 SoC
- GCC 支持高通MSM8994/MSM8992 SoC
- 对高通SC7280 SoC 的 LPASSCC 和 CAMCC 支持
- 为高通NAND 控制器驱动程序添加条目
- 高通 PCIe 控制器驱动程序:
- 添加 SC8180x 兼容字符串
- 添加端点控制器驱动和DT绑定
- 重组以使用 of_device_get_match_data()
- 添加 SC7280 特定的 pcie_1_pipe_clk_src 处理
- 网络
- 高通以太网交换机 (qca8k):支持 QCA8328
- 高通WiFi (ath11k)的各种更新– 支持 80P80 和 160 MHz 带宽、支持 6 GHz 频段的通道 2等等
- 高通手机 SoC WiFi (wcn36xx) – 启用空闲模式省电 (IMPS) 以降低空闲期间的功耗
- SPI 驱动程序– 高通 SC7280 和 SC7180
- PHY – 高通 QCM2290 USB2 和 USB3 支持
- 添加了高通“睡眠统计”驱动程序,有助于将各种高通平台带入低功耗模式。
- 适用于 Linux 5.16 的 ARM64 DTS 更新
- MSM8916 的清理修复
- MSM8998 – 多媒体时钟控制器和 iommu、GPU 及其专用 IOMMU 的说明。
- IPA6018 – 添加了 USB 控制器和 PHY
- IPQ8074 – SPMI 控制器的描述。
- SC7280 获得 QSPI、低速 (i2c/spi/uart)、GPU、热区、调制解调器、CPU 拓扑和更新的内存映射。
- SDM845 – 将硬件的节流温度从约 70C 提高到 95C,结果基准测试提高了 30%。依靠硬件节流和热压,CPU冷却设备下降
- ARM64 defconfig 更新:
- 禁用固件加载用户空间回退
- 启用新的限制驱动程序,该驱动程序控制一系列高通平台上基于硬件的热缓解。
- 启用 prima/pronto WiFi 和蓝牙驱动程序
- 启用启动平台所需的 SC7280 驱动程序
- 新设备和开发板
- 11 款新智能手机,包括 Fxtec Pro1 QX1000、索尼 Xperia XZ1、Xperia XZ1 Compact、Xperia XZ Premium、Xperia 10 III、小米Mi5 和小米Mi Note 2
- 3款额外的 Chromebook
- 联发科
- PCIe – 添加 MediaTek MT7621 PCIe 主机控制器驱动和 DT 绑定
- 联发科 WiFi (mt76)
- MT7921 – ASPM、6GHz、SDIO 和测试模式支持
- MT7915 – LED 和 TWT 支持
- 联发科MT7922 和 MT7921 的蓝牙驱动支持
- 联发科改进了对 Chromebook 中使用的 MT81xx SoC 以及 MT76xx 网络 SoC 的支持
- 其他新的 Arm 硬件平台和 SoC(总结,因为这次有 60 块新
- 苹果– M1 获得对 PCI 和 pinctrl 的支持,更接近于开箱即用的可用系统。
- 信骅科技– 使用 AST2600 作为 BMC 的两个附加服务器主板
- 博通– 几个 Cisco Meraki 无线控制器,以及两个新开发板
- 英特尔– 英特尔 Arria SoC FPGA 家族中添加的新开发板
- Marvell – 基于 Armada 381 的网络交换机和MOCHAbin 7040 开发板
- Microchip – SAMA5D29 SoC、LAN966 SoC、为旧的 at91sam9g20 SoC 添加了两个板文件
- 恩智浦
- S32G2 汽车 SoC
- 2 个基于 i.MX6 的电子书阅读器和三个额外的开发板
- STMicroelectronics – STM32MP13 SoC 系列以及参考板
- 瑞萨电子– 新版本的 R-Car Gen3 SoC
- Texas Instruments – 三款带有K3 SoC 的新开发板。
- 东芝– 维斯康蒂系列的开发板
- 赛灵思– 五款基于 ZynqMP 的新设备
Linux 5.16中RISC-V的变更日志
Linux 5.16 中特定于 RISC-V 架构的一些更改
- Allwinner D1 – 看门狗驱动程序
- SiFive HiFive Unmatched 的 DT 更新,修复了调节器处理
- SiFive Hifive Unleashed 和 Unmatched 的一对修复程序,可正确连接 MMC 卡检测信号。
- 支持 VDSO 中的时间命名空间,以及一些相关的清理。
- 支持构建 rv32 randconfigs。
- 对 XIP 端口的改进,允许更大的内核运行
- SiFive 和 Microchip 板的各种设备树清理
- 一些 defconfig 更新,包括启用 Nouveau(这是 对GPU的支持!)
Linux 5.16中的MIPS
MIPS 架构也有一些小的变化:
- 为 /proc/cpuinfo 添加了 CPU 选项的打印
- 删除了对 Netlogic SOC 的支持
- 修复和清理
- 为启用 ZSTD 的配置构建修复程序
- 修复先发警告
- 修复龙芯FTLB检测
- 修复页表级别选择KernelNewbies 网站
- 连线 futex_waitv 系统调用
- 为 lantiq 和 bcm63xx 配置构建修复
- yamon-dt 错误修复
如需更完整的 Linux 5.16 变更日志,你们可以阅读使用命令生成的完整评论git log v5.15..v5.16-rc8 –stat,或查看KernelNewbies 网站上的摘要。
文章翻译者:Jacob,嵌入式系统测试工程师、RAK高级工程师,物联网行业多年工作经验,熟悉嵌入式开发、测试各个环节,对不同产品有自己专业的分析与评估。