LWN:5.15 合并窗口第一部分!
關注了就能看到更多這么棒的文章哦~
5.15 Merge window, part 1
By Jonathan Corbet
September 2, 2021
DeepL assisted translation
https://lwn.net/Articles/867821/
撰寫文本之時,已經(jīng)有 3,440 個 non-merge changeset 合入了 mainline 倉庫,這些是正在進行的 5.15 開發(fā)周期一部分。僅僅只有 3,440 個 patch,看起來開頭的進展比較慢,不過已經(jīng)包含了很多重要的新功能。請繼續(xù)閱讀來看看 5.15 合并周期前半部分情況如何。
Architecture-specific
s390 架構支持了 KFENCE 和 KASAN KCSAN 開發(fā)工具。
Core kernel
終于可以將整個 control group 加入 SCHED_IDLE 這個 scheduling class 之中了。之前只能逐個 task 來進行設置。這樣設置之后,整個 cgroup 中的進程都只在 CPU 沒有其他工作要做的時候才會得以執(zhí)行了,不過其中的各個 task 還是會有相對權重可以調整。
經(jīng)過了 17 年這么長的開發(fā)之后,realtime reemption locking (實時搶占鎖)代碼終于被合入了。這個工作 開始于 2004 年,已經(jīng)對 kernel 中的核心代碼進行了許多顯著改動。在這個最新功能合入之后,用來實現(xiàn)確定時間的實時響應的 sleepable lock 也終于加入了內核(盡管只有在 kernel 是打開了 REALTIME config 選項的時候)。這個 merge log 中描述了這個改動帶來的主要影響。
io_uring 子系統(tǒng)現(xiàn)在可以 支持 直接指定用固定的 file table 位置來打開文件,而不需要使用文件描述符了。這樣可以對某些場景的性能帶來顯著提高,并且這也是對 Unix 傳統(tǒng)的使用文件描述符來打開文件的方式的一次重大改變。
io_uring 中還新增了一個新的 "BIO recycling" 機制,可以用來避免一些內部 memory 管理方面的額外開銷。據(jù)稱能讓 io_uring 的每秒持續(xù) I/O 操作性能表現(xiàn)提升 10%。
io_uring 終于支持了 mkdirat(), symlinkat(), 以及 linkat() 這幾個系統(tǒng)調用。
BPF program 現(xiàn)在可以支持對 timer event 的 request 和 respond 了。timer API 文檔很少,相關的信息可以參考 this commit 以及 this one,此外還有一個 test program 中帶有一個例子。
Core scheduler 對 scheduling on asymmetric systems 的支持已經(jīng)合入了。還有一部分代碼是能讓 Arm 處理器可以利用這個功能的,可能會在 merge window 的后續(xù)日子里得到合入。
Filesystems and block I/O
fanotify API 新增了一個選項, FAN_REPORT_PIDFD, 用來在 event metadata 里面返回一個 pidfd。這個功能(需要特權才能執(zhí)行)可以在避免競爭的情況下確認是否有進程訪問到了所監(jiān)控的文件。
關于 hole-punching 的一些fix 應該可以避免一類可能會導致文件損壞的微妙 race condition。
mandatory file locking 功能已經(jīng)多年處于 deprecated(即將廢棄的狀態(tài)了)。它功能有問題,并且很少有人用(如果說真的還有人在用的話)。在 5.15 中徹底移除了對 mandatory locking 的支持。
LightNVM subsystem 提供了對固態(tài)存儲設備(SSD 之類)的直接訪問,不再需要一個 emulation layer,不過這個功能也被移除了。根據(jù) 相關的 commit message, LightNVM 很早以前就被那些更加新的 NVMe 標準取代了,不再有需要。
kernel 終于有了一個內核內部的支持 SMB 文件系統(tǒng)這組協(xié)議的 server。相關的 merge message 中提到:
ksmbd 是一個實現(xiàn)了 SMB3 協(xié)議 server 端功能的 kernel module。目標是希望能提供更好的性能,并且是 GPLv2 的 SMB server,還希望有更好的租約處理(分布式 caching)。更長遠的目標是希望能更快地增添新功能(比如增加 RDMA 也就是 "smbdirect",以及新出現(xiàn)的對此協(xié)議加密和簽名功能的改進),也就是希望在這個更小、更優(yōu)化的 kernel server 里面比起使用 Samba 來說能更加容易地進行開發(fā)。
Samba 項目涵蓋的功能還是更加多(包括工具,安全服務,LDAP,Active Directory Domain Controller,以及跨平臺的文件服務能支持更多場景),不過 Samba 中的用戶空間的 file server 已經(jīng)被證明對于一些 Linux 場景來說很難優(yōu)化,包括運行在小型設備上。
目標并不是要取代 Samba,而是能對其擴展,從而針對 Linux 可以提供更好的優(yōu)化,同時也計劃在可能的情況下要跟 Samba 用戶空間工具、庫等很好地集成起來。已經(jīng)進行的跟 Samba team 的合作已經(jīng)確保了配置文件以及 xattrs 在 kernel 和 user space server 這兩種方案中使用了兼容的格式。
Btrfs 文件系統(tǒng)支持了 fs-verity 文件完整性檢驗功能以及 ID-mapped mounts.
move_mount() 系統(tǒng)調用 (在 this article 中有介紹) 得到了擴展,允許對一個現(xiàn)存的 sharing grouph 增加一個 mount。這個相對比較新的少見功能事實上解決了 Checkpoint/Restore in Userspace 開發(fā)者們碰到的許多問題。參見 this commit 來了解更多。
Hardware support
Miscellaneous: Richtek RTQ6752 TFT LCD voltage regulators, Richtek RTQ2134 SubPMIC regulators, Rockchip serial flash controllers, Arm SMCCC random-number generators, and Aquacomputer D5 Next watercooling pumps.
Networking: MediaTek Gigabit Ethernet PHYs, MHI WWAN MBIM interfaces, and LiteX Ethernet interfaces.
Power supply: ChromeOS EC based peripheral chargers and Mediatek MT6360 chargers.
Virtual: Virtio I2C adapters.
Networking
networking subsystem 現(xiàn)在支持了 per-VLAN multicast. 希望了解詳情的可以參看 this merge changelog。
In-situ Operations, Administration, and Maintenance (IOAM) subsystem 支持了 pre-allocated trace mechanism,參見 this merge commit 來了解更多。
The Management Component Transport Protocol (MCTP) 協(xié)議得到了支持。參見 this documentation commit。
Unix-domain sockets 支持了 out-of-band data.
Security-related
prctl() 新增了一個配置,名為 PR_SPEC_L1D_FLUSH。如果某個進程打開了這個選項,那么 kernel 就會在每次進程從 CPU 調度出去的時候都會進行 L1D (L1 data cache)的 flush 操作。這樣就可以預防一些潛在的 speculative-execution 漏洞竊取 L1D cache 中的數(shù)據(jù),但是會明顯地降低性能。注意,這個功能并不阻止惡意進程運行在同一個 CPU 上的 SMT sibling processor 上,這種情況必須要 core scheduling 這樣的功能來阻止。新增的這個 prctl() 功能可以被管理員禁用掉,參見 this documentation patch 來了解更多。
device mapper 利用 kernel 的 integrity measurement architecure 支持了遠程證明(remote attestation)。參見 Documentation/admin-guide/device-mapper/dm-ima.rst 了解詳情。
如果進度正常的話,5.15 合并窗口期預計會持續(xù)開放到 9 月 12 日。LWN 會在后半部分合并窗口期結束之后馬上來完成總結。看起來本次開發(fā)周期還是會有很多工作等著 pull。
全文完
LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。
長按下面二維碼關注,關注 LWN 深度文章以及開源社區(qū)的各種新近言論~
