LWN:Linux 5.11 合并窗口第一部分!

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

5.11 Merge window, part 1

By Jonathan Corbet
December 18, 2020
DeepL assisted translation
https://lwn.net/Articles/840129/

在 Linus Torvalds 发布 5.10 kernel 的时候,他提醒说 5.11 merge window 会跟大家传统假期有冲突。因此强烈希望 maintainer 能够早点把 pull request 发给他。Maintainer 们看起来也听进去了,在 5.11 合并窗口期的前 3 天就已经在 mainline 中合入了 10,000 个 non-merge changeset。本文中会对这一大拨 patch 中主要的改动进行一下总结。

Architecture-specific

  • 对 Intel 的 software guard extensions (SGX) 的支持终于合入了 kernel,这已经是在 mailing list 上讨论的第 41 个版本了。相关介绍可以从 documentation commit 中看到。

  • 作为继续限制 user space 对 x86 model-specific registers (MSRs) 的访问的一部分,不再允许对 MSR_IA32_ENERGY_PERF_BIAS 进行写入操作。有个 文档 列出了目前有哪些工具在对 MSR 进行写入操作,希望能对所有这些工具找到一个更好的解决方案。

  • arm64 architecture 中,如果使用 sigaction() 设置了 SA_EXPOSE_TAGBITS 的话,就可以把地址中的 tag 相关 bit(也就是虚拟地址中最高的几位)暴露出来。这样就可以访问到 LWN:Arm64的内存标记扩展功能!一文中介绍的指针中的 key 了。

  • 对不带 MMU 的 Microblaze 系统的支持被移除了。看起来没有人在继续使用这种配置的系统了。

  • MIPS architecture 可以支持使用 gconv 来进行 coverage testing (代码覆盖率测试)了。

Core kernel

  • 新增了一个 系统调用截获机制 (参见LWN: 模拟Windows的系统调用,第二版!), 这是基于 prctl() 实现的。这个功能可以让 user space 来 trap 并且模拟(emulate)执行系统调用。目标是用在运行 Windows 游戏的场景中,不过其他应用里面可能也会有用

  • 系统调用 userfaultfd() 现在有了新的安全增强措施,也就是 可以关闭 kernel-mode fault 处理,请见 LWN:阻止userfaultfd()处理kernel-fault!

  • BPF 子系统可以支持 task-local storage (各个 task 自己的数据)了。第一个用到的地方就是 BPF Linux security module (以前名为 KRSI,参见LWN: KRSI——另一个BPF security module!)。

  • 彻底改变了 BPF program 使用到的内存的统计(accounting)。现在有个新的 cgroup controller 可以对使用到的内存进行细粒度的管理。参看 merge commit 里的更多信息。

  • BTF 机制,用来提供 BPF program 的 kernel 类型信息等,也可以用在 kernel module 里面了。

  • io_uring subsystem 支持了 shutdown(), renameat2(), 和 unlinkat() 系统调用。

  • 调用 io_uring_enter() 的时候可以指定 timeout 时间了。增加这个功能就需要修改系统调用的 API,于是通过增加了一个新的 flag (IORING_FEAT_EXT_ARG) 来代表还有一个 timeout 参数需要处理。

Filesystems and block I/O

  • Btrfs 文件系统支持了一些新的 mount options,主要是为了在文件系统损坏的情况下拯救数据的。使用 rescue=ignorebadroots 选项可以对一个损坏的 extent root 来进行 mount 操作。而 rescue=ignoredatacsums 则关闭了数据校验的动作。

  • 已经 mount 过来的 NFS 文件系统可以支持 export 出去了。

  • close_range() 系统调用现在新增支持了 CLOSE_RANGE_CLOEXEC option (参见LWN: epoll_pwait2(), close_range(), and encoded I/O)。使用这个选项时,相应的文件描述符会被标记成 close-on-exec,而不是马上关闭掉。

Hardware support

  • Crypto:支持了 Intel QAT_4xxx crypto 加速器以及 Intel Keem Bay OCS AES/SM4 加速器。

  • Graphics: Novatek NT36672A DSI 显示屏, TDO TL070WSH30 DSI 显示屏, Analogix Anx7625 MIPI to DP 转换接口, AMD "Van Gogh" and "Dimgrey cavefish" 显卡, Lontium LT9611UXC DSI/HDMI 桥接芯片, Samsung sofef00/s6e3fc2x01 OnePlus 6/6T DSI cmd mode 显示屏, and ABT Y030XX067A 320x480 LCD 显示屏。

  • Hardware monitoring: Corsair power-supply HID 控制器, Maxim MAX127 12-bit 8-channel 数据采集系统, STMicroelectronics pm6764 voltage regulators, Delta Q54SJ108A2 电源, and Linear Technology LTC2992 I2C system monitors。

  • Media: OmniVision OV9734 传感器, OmniVision OV02A10 传感器, and Amlogic 2D graphic 加速单元。

  • Miscellaneous: Modtronix lcd2s 20x4 字符显示, Arm DMC-620 内存控制器, Samsung Exynos generic interconnects, Intel Keem Bay USB PHYs, MediaTek MT7621 PCI PHYs, Ingenic USB PHYs, Mediatek MT6360 模数转换器, Dialog Semiconductor DA9121 regulators, NXP PF8100/PF8121A/PF8200 regulators, Mellanox BlueField performance monitoring counters, Dell Wyse 3020 power buttons, Dialog Semiconductor DA7280 haptic interfaces, TI PRU remote processors, Intel LGM SoC NAND 控制器, AMD sensor fusion hubs。

  • Networking: Hirschmann Hellcreek TSN 交换机, Samsung S3FWRN82 UARTs, and OpenCompute TimeCard clocks。

  • Pin control and GPIO: Qualcomm LPASS LPI, 8953, SC7280, and SDX55 pin controllers, Intel Lakefield, Elkhart Lake, and Alder Lake-S pin controllers, and Microsemi/Microchip serial GPIO controllers。

  • Sound: NXP audio transceivers, Mediatek MT8192 音频接口, Nuvoton NAU8315 class-D 放大器, Analog Devices ADAU1372 codecs, and Realtek RT715 SDCA codecs。

  • 还有需要注意的是这次的 merge window 之内删除了比以往更多的 obsolete 驱动。在 driver subsystem 里面也进行了许多清理工作。

Miscellaneous

  • 支持了 auxiliary bus,这是一个虚拟总线用来支持 multi-function device 的。

Networking

  • 支持了 802.1Q "connectivity fault management" 机制。参看 merge message 了解详情。

  • WiMAX 协议的支持从 staging 目录里面拿掉了,希望不久之后能够删除掉。这个功能其实已经有一段时间都无法正常工作了,所以看来没有用户在继续使用了。

  • 支持了 RFC 6951 ,也就是将 SCTP 协议(Stream Control Transmission Protocol)封装到 UDP 之内。

  • Zero-copy TCP 接收优化实现了不小的性能提升,这次针对非常小的网络包做了进一步的优化。请阅读 merge message 来了解更多信息。

  • 增加了一对新的 ioctl() ,来利用 PPP channel 做桥接。 commit 里面有文档描述。

Security-related

  • seccomp() 系统调用支持了 constant-action bitmaps (参见 LWN:seccomp()里永远允许的系统调用bitmap!)。这个机制允许 seccomp() 来判定某个系统调用是否总是被允许或者被拒绝的,从而大大减少对这些系统调用的处理工作。

Internal kernel changes

按照正常的进度,5.11 合并窗口应该会在 12 月 27 日关闭。不过 Torvalds 也提醒说如果他受到假期影响没能来得及处理完 pull request 的话,他可能会把 5.11-rc1 release 延后。目前的合并进度看来本次的 merge windows 很可能不会延长。在 merge window 关闭之后,我们会按惯例再发一篇总结文章。

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值