LWN: 5.12 合并窗口,第二部分!

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

5.12 merge window, part 2

By Jonathan Corbet
March 1, 2021
https://lwn.net/Articles/847451/

5.12 kernel 的合并窗口随着 2 月 28 日发布的 5.12-rc1 关闭了。尽管 Linus 在 5.11 发布之后最初 6 天内被断电了,这次 release 还是按照正常的时间安排完成了。目前有 10,886 个改动合入了 mainline,其中约 2,000 个是在我们上一篇总结文章之后合入的。很明显,合入 patch 的速度慢下来了,不过其中还是有很多值得关注的功能。

Architecture-specific

  • RISC-V 架构也可以支持 NUMA(non-uniform memory access)系统了。此外也支持了 kprobes, uprobes, per-task stack canaries。

Core kernel

  • kcmp() 系统调用不再跟 checkpoint/restore 功能绑定了,可以在 config 的时候独立选择。

Filesystems and block I/O

  • ID mapping for mounted filesystem 功能终于合入了。过去几年看到好多种不同的实现方案,也算是尘埃落定了。合并通知邮件 里有更多信息 , 目前它支持 FAT, ext4, XFS 这几个文件系统。

  • NFS client 也可以支持"eager writes"了。在 mount 的时候打开这个选项的话,对文件的写操作不会暂存在 page cache 里面,而是直接发送给 NFS 服务器。这样就可以减少 NFS 客户端这一侧的内存压力,如果文件系统写满了的话也能马上得到通知,甚至针对某些 workload 还能提升 throughput。

  • CIFS (也就是"SMB") 文件系统新增了几个 mount option,可以控制文件(acregmax)以及目录的 metadata (acdirmax)的 caching 行为。

Hardware support

  • Miscellaneous: Playstation DualSense gamepads and force-feedback game controllers, Nintendo 64 game controllers, Nintendo 64 data cartridges, Intel Lightning Mountain centralized DMA controllers, Compute Express Link 2.0 type-3 memory devices, Broadcom VK accelerators, Qualcomm MSM8939 and SDX55 interconnect buses, Microchip AXI PCIe host bridges, Intel LGM SSO LED controllers, and Canaan Kendryte K210 reset controllers, pin control units, and clock controllers.

  • Pin control: R-Car V3U pin controllers, Allwinner H616 pin controllers, and Qualcomm SM8350 and SC8180x pin controllers.

Miscellaneous

  • user-space 的 perf-evens 这个工具也得到了更多功能,包括能报告 instruction latency(指令延迟)以及一个新增的 daemon mode 用来对那些需要长时间运行的 session 来进行分析。参见 merge changelog

Virtualization and containers

  • 添加了对 ACRN hypervisor 的支持

Internal kernel changes

  • build system 在编译 Arm64 和 x86 架构的时候可以利用 Clang 的 LTO (link-time optimization) 功能了。Android 在编译 kernel 的时候已经用上 LTO 一段时间了,现在这个功能也加到 mainline 了。参见这两个 commit:https://git.kernel.org/linus/79db4d2293eb 和 https://git.kernel.org/linus/dc5723b02e52

  • 移除了 EXPORT_UNUSED_SYMBOL() 以及 EXPORT_SYMBOL_GPL_FUTURE() 等宏,因为多年以来在 kernel 内都没有地方在使用它们了。

  • 合入了一个新的 memory 调试工具,名为 kfence。它可以找出多种类型的错误(use-after-free, buffer overflow, 等等)并且引入的 overhead 非常小,甚至可能可以用在生产系统(production systems)里,参见这个 documentation commit

  • io_uring 子系统的核心代码经过了重构,不再使用 kernel threads 了。如果确有一些需要在 thread context 上下文里完成的工作,就需要 calling process 先 fork 生成 thread。应该来说这个改动在 user 这边是看不到的(希望如此),同时也能借助移除这部分容易出问题的代码来减少 bug。

5.12 kernel 也开始进入稳定阶段了。除非有什么意外,否则最终的 5.12 版本应该会在 4 月 18 或者 25 日发布。看起来尽管发生了创纪录的冬季风暴,kernel 开发的步伐也不会被拖慢。这真是一件让人惊讶的事情。

相关文章:

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值