关注了就能看到更多这么棒的文章哦~
5.9 Merge window, part2
By Jonathan Corbet
August 17, 2020
https://lwn.net/Articles/828385/
在 Linus Torvalds 发布 5.9-rc1 并关闭这个开发周期的时候,已经有 12,866 个 non-merge changesets 合入了 mainline。在 LWN 的上次关于 5.9 merge-window 的写完之后,又合入了大约 9,000 个 patch。很明显内核开发社区仍旧非常繁忙。合入的 patch 中,照旧占大多数的都是清理和重构工作,不过还是有许多新功能的。
Architecture-specific
xtensa 架构可以支持 audit 和 seccomp 机制了。
csky 架构也支持了 seccomp。
RISC-V 架构现在支持了许多功能,包括利用 kcov 进行 code-coverage tracking(跟踪代码覆盖率),kmemleak tester,stack protection, jump labels, tickless 操作。
PowerPC 支持 queued spinlock,在竞争非常严重的情况下可以大大改善性能。
arm 和 arm64 架构现在可以缺省使用 schedutil CPU-frequency governor 了。
Core kernel
合入了 proactive compaction patch。在后台进行 memory compaction,希望能给 kernel 提供更多的 large page。
Filesystems and block I/O
SCSI 子系统现在可以利用 UFS controller 里实现的加密硬件来进行 inline encryption 了。
device mapper 的 dm-crypt target 现在有选项来避免使用 workqueue 进行加解密处理了。不用 workqueue 的话可以减小 latency。这个功能也是使用 dm-crypt 支持 zoned block device(指内部有些区域必须要顺序写入的设备)所必需的。
NFSv4.2 客户端可以支持 extended attributes(https://tools.ietf.org/html/rfc8276 )
Hardware support
Clock: Broadcom BCM2711 DVP clock controllers, Qualcomm IPQ APSS clock controllers, Qualcomm MSM8996 CPU clock controllers, and Qualcomm SM8150 and SM8250 graphics clock controllers.
Graphics: Ingenic image processing units and Xilinx ZinqMP DisplayPort DMA engines and controllers.
Industrial I/O: InvenSense ICM-426xx motion trackers and Sensirion SCD30 carbon-dioxide sensors.
Miscellaneous: multi-color LEDs in a general way (see this commit for documentation), Turris Omnia LED controllers, Microchip timer counter capture devices, Qualcomm inline crypto engines, TI J721E PCIe platform host controllers, Xilinx Versal CPM host bridges, TI BQ2515X battery chargers, Mediatek MT6779 pin controllers, TI C66x and C71x DSP remote processor subsystems, and Khadas system control microcontroller interfaces.
Networking: Vitesse Seville VSC9953 switches and Solarflare EF100 Ethernet cards.
Sound: Maxim integrated MAX98373 speaker amplifiers and NVIDIA Tegra audio processing engines.
Video4Linux: Xilinx CSI-2 Rx subsystems, Chrontel CH7322 CEC controllers, Mediatek DW9768 lens voice coils, Maxim MAX9286 GMSL deserializers, and IMI RDACM20 cameras.
还有值得注意的是 "speakup" console speech driver,它从 2.6.37 kernel 已经在 staging tree 里面了,现在终于从 staging 这里毕业了。
Networking
在 TCP 和 UDP socket 这里添加了"BPF interators" ,这样 BPF 程序就可以遍历一系列打开了的 socket 来从中提取出自己关心的信息。也提供了针对 TCP 和 UDP 的示例程序。
新增 BPF_PROG_TYPE_SK_LOOKUP 这个 BPF program type,它会在内核针对某个 incoming connection 查找已经打开的 socket 的时候来运行。这样就可以让 BPF program 来决定应该让哪个 socket 来接收这个 connection。把这个机制加进来,就可以很简单地利用一个 socket 来绑定处理多个地址或者端口号了。
支持了 parallel redundancy protocol。
Virtualization and containers
Xen hypervisor 里面移除了 32-bit PV guest mode。还有少数希望使用这个模式的地方,都可以转而使用有更好支持的"PVH" mode。
Internal kernel changes
给 kernel threads 分配优先级的方式得到了大幅度的重构。新的 API 跟 kernel 内部分配 realtime priority 的方式更加一致了。
initrd 代码不再能支持存放在多个软盘上的 disk image 了。Christoph Hellwig 说:“No one should be using floppies for booting these days. (famous last words..)”。
那些从 proprietary module 里 import symbol 的 kernel module,会自己标记为 tainted,这样它们就不再能访问 kernel 里面其他地方用 GPL-only 方式 export 出来的 symbol 了。这个改动及其目的已经在 7 月份的文章中介绍过了。
接下来,开发社区会花 7~8 周的时间来稳定这个版本,预计在 10 月份早期会发布 5.9 正式版本。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~