LWN:5.17 合并窗口第一部分!

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

The first half of the 5.17 merge window

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

目前为止,有将近 7000 个 non-merge commit 已经合入了 mainline,将会包含在下一个 5.17 版本的内核之中。这些已经合入的改动为整个内核增加了新的功能,请看如下介绍来了解 5.17 合并窗口前半段的内容摘要。

Architecture-specific

  • arm64 架构支持了 KCSAN (kernel concurrency sanitizer)。

  • 32 位 Arm 系统支持了 KFENCE。

  • 开机时的 memtest 内存检测功能可以在 m68k 架构上使用了。

  • 新增 "AMD P-State "子系统,这是一种用于即将面世的 AMD 处理器的电源控制机制,据说它能提供显著提升的性能。更多信息请参见此文档提交(https://git.kernel.org/linus/c22760885fd6)。

Core kernel

  • 新提供了 bpf_loop() 这个 helper。它是在 BPF 程序中实现(一些)循环的另一种方式。可以提高性能并让 loop 循环可以更容易通过 BPF verifier 的检查。

  • 以前在用户空间实现的 "一次编译/到处运行"(CO-RE, compile once/run everywhere)机制,现在在内核中也可以运行了。这是朝着最终实现 signed BPF program 所迈出的一步,也会使 BPF 功能更容易被 Go 等语言使用。

  • scheduler 也会跟踪记录 forced-idle 时间了。这是由于 core-scheduling 机制导致的 SMT sibling 处理器被强制放到 idle 状态的时间。这个信息可以用来评估在打开 core-scheduling 机制后会带来多大的额外开销,它可以从 /proc/PID/sched 中获取到。

  • RCU_FAST_NO_HZ config 选项被删除了,它是为了在 tickless CPU 上对 RCU 算法进行一些更深入的微调使用的。似乎没有发现真的有人使用这一功能。

Filesystems and block I/O

  • ID-mapped filesystem 现在可以在本身就是 ID-mapped 的文件系统之上再进行 mount 了。相关的 merge commit 里面有更多信息。

Hardware support

  • Graphics:direct rendering 子系统已经支持了 electronic privacy screen,很多笔记本电脑上都有这个功能。另外添加了 JDI R63452 全高清 DSI 面板、Ilitek ILI9163 显示面板、Novatek NT35950 DSI 面板、Boe BF060Y8M-AJ0 面板、Sony Tulip Truly NT35521 面板,以及 R-Car DU MIPI DSI 编码器。

  • Hardware monitoring。德州仪器 INA238 电源监控器,华硕 WMI B550/X570 和 X370/X470/B450/X399 硬件监控接口,台达 AHE-50DC 风扇控制模块,瑞萨 RZ/G2L 热传感器,MPS MP5023 硬件监控接口,以及 NZXT 风扇控制器。

  • Media。意法半导体 STM32 Chrom-Art 加速器,Maxim MAX96712 四路 GMSL2 deserializers,OmniVision OV5693 传感器,以及支持 VP9 的各种编解码器。

  • Miscellaneous。苹果 PMGR 电源状态控制器、R-Car Gen4 系统控制器、三星 Exynos 通用串行接口、StarFive JH7100 时钟发生器、StarFive JH7100 复位控制器、Marvell CN10K 性能监测单元、HiSilicon PCIe 性能监测单元、Marvell CN10K 随机数发生器。Letsketch WP9620N 平板电脑、Maxim MAX77976 电池充电器、联想 Yoga Book 平板电脑、西门子 Simatic LED 控制器、西门子 Simatic IPC 看门狗、华硕 TF103C 二合一键盘底座、瑞萨 R-Car Gen3 和 RZ/N1 NAND 控制器、TI TPS68470 PMIC 稳压器、Maxim MAX20086-MAX20089 相机电源保护器。

  • Networking。Engleder TSN endpoint 以太网 MAC,Microchip Lan966x 网络交换机,Vertexcom MSE102x SPI 接口,以及 Mellanox Spectrum-4 以太网交换机。

  • Pin control。高通公司 SDX65 和 SM8450 引脚控制器、StarFive JH7100 引脚控制器、NXP IMXRT1050 引脚控制器和英特尔 Thunder Bay 引脚控制器。

Networking

  • 增加了 reference-count tracking infrastructure (引用计数跟踪相关的基础设施)。这个机制应该能帮助开发者追查到引用计数相关的错误具体来源。目前,它只是针对网络子系统的,但应该可以比较容易地移植到内核的其他部分。

  • 新增 "converged security and management engine" module 允许通过 WiFi 与英特尔管理引擎(位于英特尔 CPU 中的一个独立处理器)来进行通信。

  • 可以支持将流量控制相关动作(traffic-control actions)也 offload 给网络设备来完成的功能。具体信息可以在 commit 中看到。

  • 管理组件传输协议(MCTP, management component transport protocol)现在支持通过串行设备了。基于 SMBus 的 MCTP 功能也被合入了,但随后由于 I2C 维护者抱怨这些 I2C core 相关改动没有把他加进来,因此被 revert 了。

Security-related

  • 内核的随机数生成器已经从 SHA1 哈希算法切换到 BLAKE2s,这样既快又安全。

Virtualization and containers

  • 用户模式 Linux 现在可以用 devicetree blob 来启动了,这样便于测试驱动代码。

  • Xen USB 虚拟 host 驱动程序允许将对 USB 设备的访问传递给 Xen guest。

Internal kernel changes

  • slab 分配器使用的 struct page 内容已经被移到一个单独的结构中去了。之前 LWN 介绍过这项工作的早期版本。后来 Vlastimil Babka 又进一步推动了后续实现。

  • KCSAN 已经检测出一些缺失的 memory barrier 了。更多的信息可以从文档 commit 中找到。

  • 新的 gpio-sim 模块创建了用于测试目的的模拟 GPIO 芯片。更多信息请参见相关 commit。

  • 内核现在使用 -Wcast-function-type 编译选项来 build,这样当函数指针被转换为不兼容的类型时会产生一个 warning。这种检查是为了避免触发 control-flow integrity alarm 所必须要做的。

目前在 linux-next 中大约有 4000 个 changeset,这表明在合并窗口的剩余时间里会有比较少的改动了。当然毫无疑问还是有一些吸引注意力的改动等待合入 mainline,这一切需要在 1 月 23 日合并窗口关闭前完成。请继续关注我们下半部分的总结,应该就在这个日子之后不久。

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

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

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

a851a98d979d6ebecb51a38a929a0204.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值