关注了就能看到更多这么棒的文章哦~
5.11 Merge window, part 2
By Jonathan Corbet
December 28, 2020
DeepL assisted translation
https://lwn.net/Articles/841062/
Linus Torvalds 发布了 5.11-rc1 的 prepatch(https://lwn.net/ml/linux-kernel/CAHk-=wg1+kf1AVzXA-RQX0zjM6t9J2Kay9xyuNqcFHWV-y5ZYw@mail.gmail.com/),并在 12 月 27 日的时候关闭了 5.11 的 merge window。截止这一时刻,已经有 12,498 个 non-merge changeset 合入了 mainline,其中大约 2,500 个改动是在我们上一篇介绍 5.11 窗口前半部分的文章之后合入的。正如大家预料,第二周的开发工作慢了下来,不过还是有许多有意思的功能合入了 mainline。
Architecture-specific
RISC-V 架构支持了 contiguous memory allocator, 也就是人们通常所说的 CMA。还有对 /dev/mem 进行了更严格的保护,也支持了中断时间的统计。
KASAN 在 32-bit Arm 系统上也可以使用了.
KASAN 现在可以使用 64-bit Arm memory tagging extension, 不用非要用来 software tagging 和 shadow memory 了。
Core kernel
增加了 epoll_pwait2() 系统调用, 用来支持更高精度的 timeout。
Filesystems and block I/O
F2FS 文件系统新增了一些 ioctl() 调用,可以让 user space 得以控制那些使用压缩形态存储的文件。新增的 compress_mode= 这个 mount option 就是用来控制关于压缩工作的决策是由 kernel space 还是 user space 来决定。
Overlayfs 文件系统现在可以由 user space 的非特权进程来 mount 了,根据 commit message, 这里大家对 overlayfs 的函数全部审查了一遍,确保 overlayfs 不会被用来获取新的特权。
Ceph 文件系统支持了 the "msgr2.1" protocol,就可以对传输的数据使用 AES-GCM 进行加密了。
XFS 文件系统新增了一个 "needs repair" bit。当 kernel 设置了这个 bit 的时候,后续挂载这个文件系统的时候就会被拒绝,得要经过 xfs_repair 工具来进行一次完整检查之后才可以继续挂载。
dm-multipath 这个 device-mapper target 实现了一个新的路径选择器(path selector),会也在选择如何分发 I/O request 的时候也考虑上 CPU affinity 。目的就是确保系统如果进行了配置来针对 CPU locality 进行优化的话一定要把这一点也考虑进来。这样能对带宽有很明显的提升。
Hardware support
Clock: Qualcomm SC7180 camera clock controllers, Qualcomm SDX55 global clock controllers, Freescale FlexSPI clocks, and SiFive FU740 PRCI clock controllers.
Miscellaneous: ARM MHUv2 mailbox controllers, Qualcomm Application Data Mover (ADM) DMA controllers, Qualcomm GPI DMA controllers, MStar MSC313 GPIO controllers, HiSilicon GPIO controllers, Intel LGM and Keem Bay pulse-width modulators, Synopsys DesignWare pulse-width modulators, and MIPI Alliance I3C host controller interfaces.
Security-related
新增了一个名为 "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" 的配置选项,允许 dm-verity subsystem 使用第二个 trusted keyring 里的证书来对 hash 签名进行验证。这样就可以不会只能使用编译进 kernel 的证书了,还可以使用运行起来之后才加载的证书进行签名验证。这样就可以在不用更新整个 kernel 的情况下更新那些证书了。
Virtualization and containers
User-mode Linux 现在可以支持 suspend-to-idle 了,并且 suspend 了的一个实例也可以被 SIGUSR1 信号唤醒来继续执行。
virtio-mem mechanism (用来对虚拟机添加或者移除 memory)支持了 "big block mode"。简单来说,这个功能可以允许在添加或者移除 memory 的时候,使用比 host kernel 的 memory-block size 更大的单位了。这样就可以在 guest memory 里面使用上 huge page(达到 1GB 的单位)了。
Internal kernel changes
kernel 的编译系统在编译一个缺少 MODULE_LICENSE() 声明的 module 时会报错。
对 static 函数使用 EXPORT_SYMBOL() 并没有必要,现在会在编译的时候报错。
时间终于到了 Torvalds 在宣布 -rc1 时候就提到的 "go kick the tires" 并且找到这些新加代码中的 bug 的时候了。也许我们会在 2 月份情人节的时候能发布一个稳定的 5.11 release 作为情人节礼物了。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~