LWN:5.7内核合并窗口第二部分!

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

5.7 Merge window part 2

By Jonathan Corbet
April 13, 2020

原文来自:https://lwn.net/Articles/816934/

主译:DeepL

在5.7合并窗口结束时,有11,998个 non-merge changeset合入到了本开发周期的mainline中。这比5.6合并窗口期间多出了1218个;看来此刻的全球性卫生事件并没有拖累内核社区的开发速度——至少现在还没有。合并窗口的后半段往往会看到更多的bug fix,新功能会较少。但在上次写完前半段的总结之后,仍然有一些有趣的东西出现了。

Architecture-specific

  • 32位Arm系统不再支持运行KVM guest。

  • s390的 "fake NUMA "功能已被删除;已经证实它对s390系统的各个场景都没有提供性能改善。

  • RISC-V架构获得了CPU hotplug的支持。

Core kernel

  • cgroup memory controller现在实现了 "recursive memory.low protection"。memory.low值表示cgroup内部成员应该能够共享的最小内存量,但在当前的内核中,这个值不方便动态改变,必须在cgroup的每一层进行配置。如果该层使用了memory_recursiveprot选项,那么在上一级节点中设置的memory.low值将自动适用于所有的子节点,除非被显示地override,这样可以在运行时更灵活地分配各个层次结构中的内存。有关其工作原理的更多细节,请参阅修改日志(https://git.kernel.org/linus/8a931f801340) 。

  • 可以使用 clone3() 在生成进程时直接配置好它属于哪个cgroup。

  • 用于管理cgroup的 cgroupfs 文件系统现在支持扩展属性;这个改动的使用场景是允许那些user-space management daemon进程留下一些note。

  • userfaultfd()机制现在可以在目标进程中对protect page进行写操作。在这个commit(https://git.kernel.org/linus/57e5d4f278b9 )中可以找到少量的文档。

Filesystems and block I/O

  • 不出所料,exFAT文件系统又有了一个新的实现;这个由三星提供,并得到了微软的祝福(https://cloudblogs.microsoft.com/opensource/2019/08/28/exfat-linux-kernel/ )。

  • F2FS文件系统现在支持zstd压缩。

  • Ceph文件系统可以在本地执行文件创建和unlink操作,而不需要等待服务器响应,需要大量进行此类工作的时候(如rsync操作)就可以更快了。

Hardware support

  • Clock。联发科MT2712实时时钟、高通SM8250全局时钟控制器、高通SC7180调制解调器时钟控制器、展讯SC9863A时钟、理光RC5T619实时时钟。

  • Miscellaneous。UniPhier XDMAC外部DMA控制器、Ingenic JZ4780 EFUSE存储器、通过调制解调器主机接口(MHI)总线连接的器件、高通SC7180和OSM L3互连总线、CoreSight交叉触发接口、Meson AXG MIPI+PCIE模拟PHY。飞思卡尔Layerscape PCIe Gen4控制器、Amlogic Meson安全电源域控制器、SGI Octane前面板LED、Azoteq IQS620A/621/622/624/625多功能传感器、理光RN5T618/RC5T619电源管理IC、展讯热传感器、飞思卡尔i.MX8MM温度传感器、ChromeOS嵌入式控制器type-C连接器和德州仪器K3 RTI看门狗。

  • Pin control and GPIO:高通IPQ6018引脚控制器,Dialog Semiconductor DA9062 PMIC引脚和GPIO控制器,以及Mellanox BlueField 2 SoC GPIO控制器。

  • Sound。Amlogic AIU音频输出子系统、Amlogic T9015数模转换器、德州仪器TLV320ADCX140编解码器、Realtek RT5682编解码器、Broadcom BCM63XX I2S模块和Maxim MAX98360A放大器。

  • vDPA:内核现在支持vDPA设备,根据这个提交(https://git.kernel.org/linus/961e9c84077f ),这些设备的数据路径符合virtio规范。这些设备本身可以是虚拟的,但它们也可以在硬件中实现virtio。两个Intel设备是第一个使用这种支持的设备。

Miscellaneous

  • GPIO 子系统提供了一个新的 ioctl() 命令,当任何 GPIO 的属性发生变化时,可以通知到进程。这个提交(https://git.kernel.org/linus/33f0c47b8fb4 )包含了一个使用该功能的示例工具。

Virtualization and containers

  • 一个新的free-page报告机制,guest系统可以通过该机制通知host系统说哪些page不再被使用。然后主机可以相应地reclaim这些页面。一些文档可以在这两个链接看到:https://git.kernel.org/linus/36e66c554b5c 和https://git.kernel.org/linus/1edca85e768a 。

  • KVM 增加了一个fix来解决split-lock detection带来的问题;不过许多hypervisor不是基于Linux tree的,而是基于VMX的,它们仍然会有问题。

Internal kernel changes

  • 继续开发explicit pinning of user-space pages,希望最终解决get_user_pages()的一些长期存在的问题(https://lwn.net/Articles/753027/ )。特别是,已经实现了对pinned page的tracking,但如何处理这些页面,还没有确定。

  • 在没有debugfs虚拟文件系统的情况下,dynamic debugging机制可以通过/proc/dynamic_debug/control的新增控制节点来使用。

  • 新增vm_insert_pages(),是vm_insert_page()的批处理版本;它将多个page放到用户空间的虚拟内存区域,减少了locking overhead。

  • 构建内核所需的binutils的最小版本提高到了2.23。

  • 新的LLVM=1命令行选项使内核使用LLVM工具而不是GCC和binutils来构建。但是,要使用内置的汇编器的话也必须同时设置LLVM_IAS=1;旧的AS=clang选项不再适用于此目的。

  • 合并窗口关闭前应用的最后一个补丁将MAINTAINERS文件按字母顺序排序,因此可能会造成大量的合并冲突。此外每个条目中的字段的顺序也按字母顺序排序,更加会增加今后的合并冲突了。

现在是时候修复来新代码中的bug,并将5.7变成一个正式release了。如果按照正常的节奏,5月31日或6月7日可以发布。

全文完

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值