LWN: 6.0 合并周期,第二部分!

关注了就能看到更多这么棒的文章哦~

6.0 Merge window, part 2

By Jonathan Corbet
August 15, 2022
DeepL assisted translation
https://lwn.net/Articles/904032/

Linus Torvalds 在 8 月 14 日发布了 6.0-rc1,关闭了合并窗口,时间跟预计的一样。那时已经有 13,543 个 non-merge 的改动进入 mainline 仓库了。其中有一半以上是在我们写完第一个 6.0 合并窗口的总结后拉出来的。合并窗口的后半部分往往更注重于 bug fix 而不是新功能,但在这段时间内仍然有许多有趣的改动。

在 6.0 合并窗口的后半段,最重要的变化有:

Architecture-specific

  • OpenRISC 和 LoongArch 架构都获得了对 PCI 总线的支持。

  • RISC-V 架构现在支持 "Zicbom "扩展,它提供了对具有非缓存一致性 DMA 的设备的管理。

Core kernel

  • runtime verification 子系统已经被合并了。这个子系统允许针对各种内核状态以及状态转换进行建模;如果内核在某个时刻没有遵循这个模型,那么就会得到提醒,甚至使系统 panic。其中一个例子是 WIP model,它可以确保 wakeup 事件不会在 preemption enable 的情况下发生。

  • DAMON 机制获得了一些新的功能,可以用来改变来自用户空间的内存管理。最重要的是 "LRU_SORT" module,可以重新排列 LRU list,使一些 page 能优先于其他 page。详情请见相关的 documentation commit。

  • 支持创建新的 CXL 内存区域;该 commit 的 changelog 描述了基于 sysfs 的管理接口。

Filesystems and block I/O

  • 内核支持了 NVMe in-band authentication

  • ext4 文件系统支持两个新的 ioctl() 操作:EXT4_IOC_GETFSUUID 和 EXT4_IC_SETFSUUID,它们可以用来获取或设置存储在文件系统 superblock 中的 UUID。

  • NFSv4 服务器现在会限制自己在系统中每 1GB 内存仅支持 1024 个活动 client。如果超过这个数字的话就会返回 temporary failure,并开始清理旧的、空闲的 client 客户端。

Hardware support

  • 时钟:Microchip PolarFire 实时时钟、TI K3 实时时钟和 Nuvoton NCT3018Y 实时时钟。

  • GPIO and pin control:英特尔 Meteor Lake 引脚和 GPIO 控制器,瑞萨 RZ/V2M 引脚和 GPIO 控制器,瑞萨 R-Car V4H 引脚控制器,高通 8909 引脚控制器,全志 D1 引脚控制器,以及高通 SM6375 引脚控制器。

  • Input: Elan eKTH6915 i2c-hid 触摸屏。

  • Miscellaneous: Microchip SAMA7G5 OTP 控制器、Microchip Polarfire SPI FPGA 管理器、Qualcomm SPMI 轮流模数转换器、Qualcomm SM6350 互连器件、Freescale i.MX8MQ 互连器件、MediaTek PCIe 和 DisplayPort PHY、Meson G12A MIPI 模拟 DPHY、Freescale i. MX8qm LVDS PHY、微软 Surface 平板电脑模式开关、高通 SM8450 摄像头时钟控制器、高通 SM8350 图形时钟控制器、苹果音频 DMA 控制器、瑞萨 R-Car UFS 控制器、阿里巴巴弹性 RDMA 适配器、TI TPS380x 复位控制器、I2C 连接的 TPM 2.0 可信平台模块、博通 BCM63138 LED 控制器和 Mellanox BlueField 复位控制器。

  • Sound: 英伟达 Tegra210 输出处理引擎,英特尔 Meteor Lake 音频接口,高通 WSA8830/WSA8835 D 类放大器,德州仪器 TAS2780 单声道音频放大器,以及联发科 MT8186 音频接口。

  • USB: Aspeed USB2.0 设备控制器、Microchip PolarFire USB 控制器、Analogix ANX7411 Type-C DRP 端口控制器和 STMicroelectronics STM32G0 type-C PD 控制器。

  • Also: VME 总线子系统已经被移到了暂存目录(第二次),除非有人站出来维护它,否则将被完全删除。

Miscellaneous

  • Perf report 里面支持描述 lock contention 以及内核工作所用的时间;相关的 merge commit 里有描述(还包括很多其他的 Perf 改进)。后续 commit 里还带来了更多的 perf 增强功能。

Virtualization and containers

  • "guest vCPU stall detector" 是一个新增的伪设备,作用类似于 watchdog;虚拟机必须时不时地触碰它,否则 host 可以断定该机器已经 stall 住了。相关 commit 有更多的信息。

Internal kernel changes

  • CONFIG_ANDROID 配置选项已被删除,因为 "显然是个坏主意"。

  • 新增 debugfs 接口,提供了大量关于已有的 memory shrinker 以及其性能信息。相关文档提交有详细介绍。

  • 删除了使用 -O3 优化来构建内核的 config 选项。

当然,也有一些东西没能成功进入 mainline。printk() 的 pull request 被 Torvalds 严辞拒绝了,所以在这个周期内似乎根本不会有关于这个子系统的改动了。在 5.19 版本的 console-thread 功能被 revert 之后,该子系统经历了两个很困难的开发周期。同时,曾经感觉有希望能在 6.0 中合入 Rust 支持,但该代码目前看来还需要更广泛的 review。

还有几个重要的内存管理功能也曾被列入 6.0 的计划,但最终没有能合入。maple tree 数据结构越来越接近合入了,但对于 6.0 版本来说似乎还没有准备好。multi-generational LRU 功能最终成为了这个决定的附带牺牲品(也未合入)。根据 Andrew Morton 的说法,目前的计划是将这两组 patch 放入-mm 中,以便在 6.1 中合入。

不过,首先,社区必须把 6.0 内核发布出来;这意味着从现在到发布日期之间要找到并修复大量的 bug,发布几乎可以肯定是 10 月 2 日或 9 日的事情了。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值