LWN:5.17 合并窗口的剩余部分!

共 3664字,需浏览 8分钟

 ·

2022-02-11 01:00

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

The rest of the 5.17 merge window

By Jonathan Corbet
January 24, 2022
DeepL assisted translation
https://lwn.net/Articles/881597/

Linus Torvalds 在 1 月 23 日发布了 5.17-rc1,并关闭了 5.17 的合并窗口,在此之前,已经有超过 11000 个 non-merge changesets 合入了 mainline 仓库。其中有 4000 多个是在我们关于前半个合并窗口的总结写完后才合入的。因此可以说在合并窗口的后半段中大家的活动变慢了,这也正是我们之前所预期的情况。但仍然有许多重要的改动被纳入到下一个内核版本中了。

为 5.17 合并的值得关注的改动包括:

Core kernel

  • 现在可以为 "private" anonymous-memory area 匿名内存区域也指定 name 了。在人们希望优化应用程序的内存占用时,这个功能会很有用。更多信息请参见这篇文章(https://lwn.net/Articles/867818/%EF%BC%89%E4%BB%A5%E5%8F%8A%E8%BF%99%E4%B8%AA%E6%8F%90%E4%BA%A4%EF%BC%88https://git.kernel.org/linus/9a10064f5625)。

  • 内核现在能够仅靠内核自己就可以完成对内核 module 的解压了,不再依赖用户空间来完成这项工作。加入这个功能是为了让 LoadPin security module 可以维护位于存储设备上的 module 代码以及被加载到内存中的 module 之间的联系。

Filesystems and block I/O

  • fanotify 子系统支持了一个新的 event type,名为 FAN_RENAME。它是用来替代原来的 FAN_MOVED_FROM 和 FAN_MOVED_TO 这些事件的,从而在一个事件中就能完成整个重命名操作。当然,原来的那两个事件类型也仍然保持支持。

  • FUSE 文件系统的 initialization flag 已经用完了,所以 FUSE_INIT 这个动作就扩展来支持了一组新的 flag。虽然已有的各种 FUSE 实现版本中已经确认了可以使用这些扩展出来的 flag,但是用户空间还是会有可能会出现一些意外的问题的。如果出现这类问题的话,这个改动就可能会被 revert 掉,然后换成更加复杂的解决方案。

  • 处理网络文件系统缓存的 "fscache" 子系统的实现被从头又实现了一遍。一般来说,这个改动应该不会有什么影响从而被用户发现。merge commit 中简单介绍了一下这个工作,以及为什么要做。

  • 缘由的 /sys/class/dax compatibility option 被删除了,这个变化应该不会破坏现在仍在实际部署中的系统,但如果有人抱怨的话,也可能会被 revert 回来。

  • 新增了一个 Ceph 文件系统 mount 的语法,用来解决一些问题。请看这个文档提交(https://git.kernel.org/linus/e1b9eb50763d) 来了解用法。

Hardware support

  • Clock。R-Car Gen4 和 S4-8 时钟控制器,TI TPS68470 PMIC 时钟控制器,全志 D1 时钟控制单元,高通 MSM8956/76,SDX65 和 SM8450 全球时钟控制器,东芝 Visconti5 时钟控制器,联发科 MT7986 时钟控制器,任天堂实时时钟和凌阳 SP7021 实时时钟。

  • Industrial I/O。Analog Devices AD7293 功率放大器电流控制器、Analog Devices AD74412R/AD74413R I/O 控制器、Analog Devices ADMV8818 高通/低通滤波器、Analog Devices AD3552R 数模转换器和 Analog Devices ADMV1013 微波上变频器(microwave upconverter)。

  • Miscellaneous。联发科 MT6360 PMIC LED 控制器、联发科 SPMI 控制器、MStar MSC313E 定时器、赛灵思 AMS 系统监视器、瑞萨 R-Car Gen3 实时处理器以及高通 MSM8996、QCM2290 和 SM8450 互连供应商。

    另外,英特尔的 "platform firmware runtime update" 驱动程序已经被合并,它可以在不需要重新启动系统的情况下对系统固件的部分内容进行更新。更多的信息可以在这个文件(https://uefi.org/sites/default/files/resources/Intel_MM_OS_Interface_Spec_Rev100.pdf) 中找到。

  • PHY。高通公司 eDP PHY、微芯片 lan966x 以太网 PHY、英特尔 Thunder Bay eMMC PHY,以及飞思卡尔 i.MX8M PCIE PHY。

  • Sound。联发科 MT8195 音频 DSP,AMD Renoir 音频 DSP,德州仪器 TLV320ADC3001/3101 音频编解码器,以及旭化成 AK4375 编解码器。

  • Watchdog。Realtek Otto MIPS 看门狗定时器,瑞萨 RZ/G2L WDT 看门狗定时器,以及苹果 SoC 看门狗定时器。

Miscellaneous

  • perf ftrace 新增了一个 latency 子命令,用于生成 latency 的直方图,也可以选择使用 BPF 脚本来收集数据。这个功能是由 BCC tool 引入的。

  • 增加了用于实时系统(realtime system)分析的 "RTLA" 工具集。这些工具包括 osnoise(测量操作系统对 task 执行所引入的干扰)和 timerlat(测量 timer latency)。

Security-related

  • 合并了对 straight-line speculation 漏洞的防护措施。如果希望编译生成带有这种保护功能的内核,就需要使用即将发布的 GCC 12。

  • 新增 "page-table check" 功能,在向进程的 page table 添加新条目时可以进行额外检查。它能够检测到某些类型的 corruption,并在发生更糟糕的问题之前先让系统停下来。相关信息可以在 commit 中看到。

Internal kernel changes

  • 下一批的 folio patch 已经被合入了。这些工作把大部分的 page-cache 代码都改为使用 folio 了,但还没有完全完成。因此,与 page cache 相关的 API 也会因此而改变。XFS 文件系统也合入了一组改为使用 folio 的 patch。

  • 新增的 kthread_run_on_cpu() helper 会在指定的 CPU 上创建一个新的内核线程并开始运行。

  • vmalloc() 现在支持 __GFP_NOFAIL flag,用于那些绝对不允许分配失败的情况。打算使用这个 flag 的开发者应该牢记 Andrew Morton 的告诫:"每次使用它都是一种罪过,every use is a sin"。现在 vmalloc() 也支持了 GFP_NOFS 和 GFP_NOIO 标志。

  • 新增的 make mod2noconfig 这个编译目标会创建一个新的内核配置,其中把之前所有作为 module 构建的子系统都禁用了。

  • 可以用来构建内核的 LLVM 最低版本已经增加到了 11.0.0。commit 中解释了这个改动的动机。

  • 2010 年合并的 "cleancache "机制已被删除。目前似乎没有用户使用 cleancache,因此也没有理由保留它。相关的 "frontswap" 机制中的大部分功能也已经没有了,所以不可能会选择 frontswap 这个单独的配置选项了。

现在是时候来验证所有这些刚刚进入 mainline 的工作稳定性了。这个过程可望在未来七、八周内展开,最后的 5.17 版本将在 3 月 13 日或 20 日发布。

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

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

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



浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报