本文主要是介绍LWN:内核5.4版本合并窗口——第二部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
5.4 Merge window, part 2
By Jonathan Corbet
译者按:本文有两个笑话,看得懂的才是真开发者。一个是"revert the revert of the revert patch";另一个是supervisor -> hypervisor -> ultravisor,LWN subscriber都在问,今后比ultravisor更强的是啥visor。欢迎点击阅读原文在LWN网站直接看原汁原味的。
5.4-rc1的发布比起按照往常的经验所做的预测来说,晚了一天。截止此时,已经有12554个patch set合入了mainline repository。其中有2900个是在上次的总结之后合入的。虽然看起来数量比较少,其实后半部分合并窗口中还是有很多有趣的改动。
在后半部分合并窗口内合入了如下改动:
Architecture-specific
PowerPC架构支持"ultravisor",这是一个软件运行的特权级别,需要依赖hypervisor。
Core kernel
增加了IORING_OP_TIMEOUT,用在io_uring_subsystem里。这个作用是让调用它的进程能在timeout之后被唤醒。
Filesystems and block layer
dm-verity子系统可以使用kernel keyring里的可信秘钥来验证某个存储器volume的root hash。
新增了一个dm-clone target,可以对只读设备复制一份。“dm-clone的主要用途是把一个远端的、高延迟的、只读的、归档用途的块设备复制成为一个可写入的、快速的、能进行快速低延迟I/O的主流设备。”
F2FS文件系统能支持忽略大小写的文件名查找。
新增virtiofs文件系统,这样host OS就能把文件系统高效的export给guest OS。
(虽然尚未放入5.4不过值得提一下)三星决定贡献出sdfat文件系统。这其实就是exFAT的一个新版本实现,据说代码质量和功能都要比现有的exFAT代码好。所以刚合入staging tree的exFAT代码可能不久后就会被替代掉了。
Hardware support
Clock: Marvell Armada AP CPU时钟控制器, MediaTek MT6779时钟控制器,Ingenic JZ47xx TCU时钟和中断控制器,Amlogic Meson虚拟实时时钟。
Miscellaneous: Freescale FlexTimer alarm timers,Macronix raw NAND控制器,Creative SB0540红外接收器,Intel Merrifield Basin Cove power-management ICs,NXP IMX7ULP watchdog timers,Spreadtrum pulse-width modulators。
PCI: Amazon Annapurna Labs PCIe控制器和NVIDIA Tegra194 PCIe控制器。
Memory Management
支持在read-only file-mapped虚拟内存区域使用transparent huge page。目前来说这个功能只用与可执行代码段。需要使用madvise()来打开这个功能。
新增两个madvise()命令,能强制kernel回收指定page(内存页面)。MADV_COLD会把指定的page移到inactive list,基本上就是把它们标记为没人使用状态,可以在page reclaim的时候释放。另一个更强的变种API是MADV_PAGEOUT,这会让这些page立刻被释放回收。
上次在我们讨论内存管理性能回退问题的时候,大家希望能够revert一个revert patch来修复性能问题,最终这个revert revert patch在5.3-rc5合入了。现在5.4周期里又把这个改动revert了,成为了revert revert revert patch,同时也合入了一些修复改动。这个revert the revert的patch在5.4版本合入了。想看看为什么Linus会绕过memory-management developer直接合入这些patch吗?可以看看这里:Linus Torvalds的理由
Security-related
在integrity-measurement (IMA)子系统增加了验证文件上附加的签名的能力。目前文档还不完整。
多年争论之后,kernel lockdown patch set终于以Linux security module(LSM)的形式合入了。
(可能就是这个原因导致了5.4-rc1延迟了一天)最后一刻,Torvalds决定合入一个熵采集(entropy-colleciton)机制来实现"jitter entropy"方式的随机数生成。他的目的是能修复boot-time entropy问题,因为这可能会导致系统在启动过程中某些情况下会hang。不过这可能不是最终解决方案:“我不保证我的patch能是最终解决方案。个人看来这个方案还是可以接受的,改动不是很危险,如果这个patch让某些较真的开发者感到不爽,然后能发个更好的方案出来,那就值得了。” Torvalds的意见是很明确的,他希望在5.4里面一定要能解决这个boot-time entropy 问题。
Internal kernel changes
build系统如果检测到在使用gold版本的链接器(ld),就会拒绝继续进行编译。因为目前gold版本链接器在编译kernel的时候会有一些问题。
支持了kernel symbol namespace。这样就能对kernel export出来的几千个symbol进行一些管理了。
checkpatch.pl工具会对changelog里的无效commit ID报warning。
社区里面计划在接下来的7~8周能把5.4 kernel稳定下来,这样预计能在11月下旬正式发布5.4版本。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
热烈欢迎转载以及基于现有协议修改再创作~
长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~
这篇关于LWN:内核5.4版本合并窗口——第二部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!