关注了就能看到更多这么棒的文章哦~
The rest of the 6.7 merge window
By Jonathan Corbet
November 13, 2023
ChatGPT translation
https://lwn.net/Articles/949957/
截至 11 月 12 日,6.7 合并窗口关闭时,已经有 15,418 个非合并变更集被合并到主线内核中。于是这一轮成为了有史以来最繁忙的合并窗口之一;不过,如果不计入漫长的 bcachefs 开发过程(约 2,800 次提交),那么补丁数量大致与近期的其他内核相符。其中超过 5,000 次提交是在我们的上半合并窗口摘要撰写之后合并的。
如下是在 6.7 合并窗口的后半阶段合并到主线中的一些人们感兴趣的内容:
架构特定
LoongArch 架构已支持使用 KVM 进行虚拟化。详细信息请参见此文档提交。
RISC-V 上的 KVM 现在支持Smstateen扩展,希望防止虚拟机使用 hypervisor 不支持的寄存器作为隐蔽通道(covert channels)。RISC-V 上的 KVM 现在还允许在客户机中使用Zicond扩展(添加了一些条件整数操作)。
x86 系统上的 KVM 客户机现在可以拥有最多 4,096 个虚拟 CPU;最大值现在通过内核配置选项设置。
RISC-V 已支持基于 LLVM的影子调用栈保护。启用此选项需要 Clang 17 或更高版本。
核心内核
内核同页合并(KSM, kernel samepage merging)希望把持有相同内容的匿名页面和病起来,以提高内存利用率。因此它会反复扫描未能合并的页面,浪费 CPU 算力。新的"智能扫描"模式会跟踪未成功扫描的页面从而使得后续的扫描可以降低频率。智能扫描默认是 禁用 启用状态;有一个新的 sysctl 旋钮(
/sys/kernel/mm/ksm/smart_scan
),可用于查询或更改其状态。相关文档可以在此提交中找到。新增了
PAGEMAP_SCAN
这个ioctl()
命令来配合userfaultfd()文件描述符一起使用,可用于检测对一段内存范围的写入。这对于某些游戏反作弊技术以及CRIU非常有用。有关更多信息,请参见此文章和此文档提交。
文件系统和块 I/O
Ceph 文件系统已支持ID映射挂载。
硬件支持
GPIO 和引脚控制: Nuvoton NPCM8XX 引脚控制器,Realtek DHC 1315E、DHC 1319D 和 DHC 1619B 引脚控制器,以及 Amlogic T7 SoC 引脚控制器。
工业 I/O: Microchip MCP39xx、MCP246x 和 MCP356x 模数转换器,Linear Technology LTC2309 模数转换器,Kionix KX132-1211 加速度计,以及 ROHM BM1390 压力传感器。
媒体: Nuvoton NPCM 视频采集/编码引擎,Digiteq Automotive MGB4 抓取卡,以及 onsemi MT9M114 传感器。
其他: Renesas R-Car Gen4 PCIe 控制器,Xilinx DMA PL PCIe 主机桥,Kinetic KTD2026/7 RGB/白色 LED 控制器,Qualcomm SDX75 互联提供者,Espressif ESP32 UART,Espressif ESP32 USB ACM 设备控制器,以及 SigmaStar SSD202D 实时时钟。
声音: Starfive JH7110 PWM-DAC 数字模拟转换器,Richtek RTQ9128 45W 数字输入放大器,Awinic aw87390 和 aw88399 放大器,以及 AMD ACP6.3 音频平台。
USB: Realtek DWC3 控制器,Intel La Jolla Cove USB 适配器,以及 NXP PTN36502 Type-C redrivers。
杂项
请参见此合并消息,了解 6.7 版本中 perf 工具的新功能和增强的详细列表。
安全相关
Landlock安全模块已获得控制网络连接的能力。有关更多信息,请参见此提交消息和此文档补丁。
AppArmor安全模块现在可以控制对 io_uring 的访问以及用户命名空间的创建;此功能已合并但没有文档。
内核已经获得用于虚拟机认证的新API。有关更多信息,请参见此变更日志。
内核内部更改
内存管理的 shrinker 机制已经重做,以消除一些 locking 开销并减少竞争。现在,所有的 shrinker 都是动态分配的,一些常见操作已经变为 lockless 的。
在一些挫折之后,改进=printk()=的可靠性和性能的工作又回来了。6.7 合并的最大改动是一个新的 per-console locking 方案,允许高优先级消息(例如紧急情况下)抢占低优先级消息控制下的控制台进行输出。
如果有合适版本的 Clang,默认情况下构建系统现在会构建
perf
BPF 程序。旧的 videobuf 层,长期以来用于管理媒体子系统中的帧缓冲,已经被移除。驱动程序应该在多年前就迁移到 videobuf2。
MAINTAINERS
文件已经更新,以反映一些内核邮件列表已经从 lists.linux-foundation.org 迁移到 lists.linux.dev。旧的列表地址目前仍然有效,但最终可能停止工作,因此人们应该更新地址簿等来适应新的配置了。
如果这是一个正常的九周开发周期的话,最终的 6.7 版本将于 12 月 31 日发布。然而,过去的历史表明,当许多开发人员离开键盘时,Linus Torvalds 不太可能选择在这个期间来发布内核。因此,更现实的发布日期预计是 2024 年 1 月 7 日。当然在那之前肯定会有很多 bug 需要被找到以及 fix,像往常一样。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~