LWN: 5.12 合并窗口,第二部分!
關(guān)注了就能看到更多這么棒的文章哦~
5.12 merge window, part 2
By Jonathan Corbet
March 1, 2021
https://lwn.net/Articles/847451/
5.12 kernel 的合并窗口隨著 2 月 28 日發(fā)布的 5.12-rc1 關(guān)閉了。盡管 Linus 在 5.11 發(fā)布之后最初 6 天內(nèi)被斷電了,這次 release 還是按照正常的時(shí)間安排完成了。目前有 10,886 個(gè)改動(dòng)合入了 mainline,其中約 2,000 個(gè)是在我們上一篇總結(jié)文章之后合入的。很明顯,合入 patch 的速度慢下來(lái)了,不過(guò)其中還是有很多值得關(guān)注的功能。
Architecture-specific
RISC-V 架構(gòu)也可以支持 NUMA(non-uniform memory access)系統(tǒng)了。此外也支持了 kprobes, uprobes, per-task stack canaries。
Core kernel
kcmp() 系統(tǒng)調(diào)用不再跟 checkpoint/restore 功能綁定了,可以在 config 的時(shí)候獨(dú)立選擇。
Filesystems and block I/O
ID mapping for mounted filesystem 功能終于合入了。過(guò)去幾年看到好多種不同的實(shí)現(xiàn)方案,也算是塵埃落定了。合并通知郵件 里有更多信息 , 目前它支持 FAT, ext4, XFS 這幾個(gè)文件系統(tǒng)。
NFS client 也可以支持"eager writes"了。在 mount 的時(shí)候打開(kāi)這個(gè)選項(xiàng)的話,對(duì)文件的寫操作不會(huì)暫存在 page cache 里面,而是直接發(fā)送給 NFS 服務(wù)器。這樣就可以減少 NFS 客戶端這一側(cè)的內(nèi)存壓力,如果文件系統(tǒng)寫滿了的話也能馬上得到通知,甚至針對(duì)某些 workload 還能提升 throughput。
CIFS (也就是"SMB") 文件系統(tǒng)新增了幾個(gè) mount option,可以控制文件(acregmax)以及目錄的 metadata (acdirmax)的 caching 行為。
Hardware support
Miscellaneous: Playstation DualSense gamepads and force-feedback game controllers, Nintendo 64 game controllers, Nintendo 64 data cartridges, Intel Lightning Mountain centralized DMA controllers, Compute Express Link 2.0 type-3 memory devices, Broadcom VK accelerators, Qualcomm MSM8939 and SDX55 interconnect buses, Microchip AXI PCIe host bridges, Intel LGM SSO LED controllers, and Canaan Kendryte K210 reset controllers, pin control units, and clock controllers.
Pin control: R-Car V3U pin controllers, Allwinner H616 pin controllers, and Qualcomm SM8350 and SC8180x pin controllers.
Miscellaneous
user-space 的 perf-evens 這個(gè)工具也得到了更多功能,包括能報(bào)告 instruction latency(指令延遲)以及一個(gè)新增的 daemon mode 用來(lái)對(duì)那些需要長(zhǎng)時(shí)間運(yùn)行的 session 來(lái)進(jìn)行分析。參見(jiàn) merge changelog
Virtualization and containers
添加了對(duì) ACRN hypervisor 的支持
Internal kernel changes
build system 在編譯 Arm64 和 x86 架構(gòu)的時(shí)候可以利用 Clang 的 LTO (link-time optimization) 功能了。Android 在編譯 kernel 的時(shí)候已經(jīng)用上 LTO 一段時(shí)間了,現(xiàn)在這個(gè)功能也加到 mainline 了。參見(jiàn)這兩個(gè) commit:https://git.kernel.org/linus/79db4d2293eb 和 https://git.kernel.org/linus/dc5723b02e52
移除了 EXPORT_UNUSED_SYMBOL() 以及 EXPORT_SYMBOL_GPL_FUTURE() 等宏,因?yàn)槎嗄暌詠?lái)在 kernel 內(nèi)都沒(méi)有地方在使用它們了。
合入了一個(gè)新的 memory 調(diào)試工具,名為 kfence。它可以找出多種類型的錯(cuò)誤(use-after-free, buffer overflow, 等等)并且引入的 overhead 非常小,甚至可能可以用在生產(chǎn)系統(tǒng)(production systems)里,參見(jiàn)這個(gè) documentation commit
io_uring 子系統(tǒng)的核心代碼經(jīng)過(guò)了重構(gòu),不再使用 kernel threads 了。如果確有一些需要在 thread context 上下文里完成的工作,就需要 calling process 先 fork 生成 thread。應(yīng)該來(lái)說(shuō)這個(gè)改動(dòng)在 user 這邊是看不到的(希望如此),同時(shí)也能借助移除這部分容易出問(wèn)題的代碼來(lái)減少 bug。
5.12 kernel 也開(kāi)始進(jìn)入穩(wěn)定階段了。除非有什么意外,否則最終的 5.12 版本應(yīng)該會(huì)在 4 月 18 或者 25 日發(fā)布。看起來(lái)盡管發(fā)生了創(chuàng)紀(jì)錄的冬季風(fēng)暴,kernel 開(kāi)發(fā)的步伐也不會(huì)被拖慢。這真是一件讓人驚訝的事情。
相關(guān)文章:
全文完
LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。
長(zhǎng)按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開(kāi)源社區(qū)的各種新近言論~
