LWN: 6.0 合并窗口,第一部分!
關(guān)注了就能看到更多這么棒的文章哦~
6.0 Merge window, part 1
By Jonathan Corbet
August 5, 2022
DeepL assisted translation
https://lwn.net/Articles/903487/
預(yù)計(jì)是 "6.0" 版本內(nèi)核的合并窗口已經(jīng)有了一個(gè)強(qiáng)勁的開端,在最初的幾天里就有了 6820 個(gè) non-merging changeset 被拉入 mainline 倉(cāng)庫(kù)。到目前為止這些工作遍布內(nèi)核代碼中各個(gè)部分;請(qǐng)繼續(xù)閱讀本文來了解這個(gè)合并窗口的前半段改動(dòng)的摘要。
到目前為止,被接受的最重要的修改包括:
Architecture-specific
arm64 架構(gòu)現(xiàn)在可以對(duì) transparent huge page 進(jìn)行 swap,不再需要先將其分割成 base page 了。不過這個(gè)功能目前跟 memory tagging extension 還不兼容。
core kernel
限制進(jìn)程跨 CPU 遷移的 energy-margin 啟發(fā)式規(guī)則已經(jīng)被移除了,這樣可以讓系統(tǒng)整體的能量利用效率更高。
對(duì)大型系統(tǒng)上的 task 的安放策略還進(jìn)行了其他一些調(diào)整,使得整體性能更好,但這個(gè) pull 的描述里面警告說,在一些 workload 中可能會(huì)看到行為有變化。
io_uring 中對(duì) epoll_ctl() 操作的相關(guān)支持已被標(biāo)為 deprecated,如果沒有人抱怨的話會(huì)在未來的版本中刪除。
新的 IORING_RECV_MULTISHOT 標(biāo)志可以讓 recv() 調(diào)用支持 multi-shot 操作,從而大大改善了從同一個(gè) socket 中進(jìn)行大量 recve 操作的應(yīng)用程序的性能。
io_uring 中對(duì) buffered write 的支持(目前僅針對(duì) XFS 文件系統(tǒng))得到了很大的改善,性能提高了 2 倍左右。
io_uring 中現(xiàn)在也支持 zero-copy 方式的網(wǎng)絡(luò)傳輸了。
針對(duì) uprobe 位置的 BPF 程序現(xiàn)在允許 sleep 了。
新增了一個(gè) BPF iterator 用于遍歷 kernel symbol;沒有提供文檔,但有一個(gè) self-test 的例子用來說明如何使用。
Filesystems and block I/O
有兩個(gè)看似未使用的分布式 lock-manager 的特性(DLM_LSFL_TIMEWARN 和 DLM_LKF_TIMEOUT)已被標(biāo)記為 deprecated。目前的計(jì)劃是在 6.2 開發(fā)周期中完全刪除掉。
fsnotify 子系統(tǒng)有了一個(gè)新的 flag,F(xiàn)AN_MARK_IGNORE,可以更好地控制要忽略哪些特定事件;commit 的 changelog 里面有更多信息。
內(nèi)核現(xiàn)在可以在 overlayfs 文件系統(tǒng)上正確地實(shí)現(xiàn) POSIX 訪問控制列表(access control list),并且這些文件系統(tǒng)是底下 overlay 的是 ID-mapped 底層文件系統(tǒng)之上的。感興趣的人可以在這個(gè) pull request 中找到關(guān)于希望解決的問題的更多細(xì)節(jié)。
有一個(gè)新的 user-space block driver,是基于 io_uring 的。它完全沒有文檔,但可以在 commit 的變更日志和 ubdsrv 的 GitHub 頁(yè)面中找到一些信息。
新增了 Btrfs "send" 協(xié)議的新版本(version 2)。支持以更大的 block size 來發(fā)送數(shù)據(jù)、raw compressed extents,并包括更多的 metadata。當(dāng)然,version 1 的協(xié)議仍然可以在兩端得到支持。
Hardware support
Graphics: LogiCVC 顯示控制器、飛思卡爾 i.MX8QM/QXP 像素組合器、飛思卡爾 i.MX8QM/QXP 顯示像素鏈接、飛思卡爾 i.MX8QXP pixel link to display pixel interface、飛思卡爾 i.MX8QM 和 i.MX8QXP LVDS 顯示 bridge、飛思卡爾 i.MX LCDIFv3 LCD 控制器和 EBBG FT8719 面板。當(dāng)然,內(nèi)核也增加了幾十萬(wàn)行的 amdgpu 寄存器頭文件。
Hardware monitoring: Analog Devices ADM1021、ADM1021A、ADM1023、ADM1020、ADT7481、ADT7482 和 ADT7483 溫度傳感器,Maxim MAX1617 和 MAX6642 溫度傳感器,National Semiconductor LM84 溫度傳感器,ON Semiconductor NCT210、NCT214、NCT218 和 NCT72 數(shù)字溫度計(jì),Philips NE1618 溫度傳感器,Analog Devices LT7182S 降壓開關(guān),和 Aquacomputer Quadro 風(fēng)扇控制器。
Media: 全志 A31 MIPI CSI-2 控制器,全志 A83T MIPI CSI-2 控制器,以及安森美半導(dǎo)體 AR0521 傳感器。
Miscellaneous: 海思 HNS3 性能監(jiān)測(cè)單元、英偉達(dá) Tegra186 定時(shí)器、瑞薩 RZ/G2L 中斷控制器、龍芯 PCH LPC 控制器、龍芯 3 擴(kuò)展 I/O 中斷向量控制器、Arm SCMI 系統(tǒng)電源控制器、聯(lián)發(fā)科智能電壓縮放引擎、高通互連帶寬監(jiān)控器、凌陽(yáng) SP7021 復(fù)位控制器、凌陽(yáng) SP7021 中斷控制器、微芯片 FPGA I2C 控制器以及瑞薩 RZ/V2M 接口。
Networking: 瑞薩 RZ/N1 A5PSW 以太網(wǎng)交換機(jī),瑞薩 RZ/N1 MII 轉(zhuǎn)換器,旺訊 10GbE PCI Express 適配器,以及微芯 LAN937x 交換機(jī)。還有一個(gè)新的 module,可以將 ELM ELM327 OBD-II 適配器改為當(dāng)作業(yè)余愛好者級(jí)別的 CAN 網(wǎng)絡(luò)接口。
Regulator: Richtek RT5120 PMIC 電壓調(diào)節(jié)器,聯(lián)發(fā)科 MT6370 SubPMIC 調(diào)節(jié)器,以及 Maxim 597x 電源開關(guān)。
Miscellaneous
自 2012 年以來,sysfs 中的 "efivars" 接口已被 deprecated;在 6.0 中會(huì)被完全刪除。我們相信,所有的用戶都已經(jīng)轉(zhuǎn)移到 EFI 數(shù)據(jù)的 efivarfs 接口。
Networking
新增了若干 BPF helper 用于生成和檢查 SYN cookies。沒有文檔,但有一個(gè) self-test 例子可以參考。
還有一套新的 BPF kfuncs 用來訪問和修改 connection-tracking state。
內(nèi)核中的 TLS 實(shí)現(xiàn)有了一些性能上的改進(jìn);詳情請(qǐng)見相關(guān) blog。
Security-related
x86 內(nèi)核現(xiàn)在可以從 bootloader 傳入的 setup 數(shù)據(jù)中獲取到隨機(jī)數(shù)種子了。在 m68k kernel 里面利用該平臺(tái)的 bootinfo 協(xié)議已經(jīng)添加了類似的功能。
SafeSetID 安全模塊現(xiàn)在可以控制那些用 setgroups() 進(jìn)行的設(shè)置。
內(nèi)核支持了 ARIA block cipher 算法。
BPF 安全模塊現(xiàn)在可以實(shí)現(xiàn)針對(duì) cgroup 的 hook 了,以前是針對(duì)單個(gè)目標(biāo)進(jìn)程。
Internal kernel changes
運(yùn)行 KUnit 單元測(cè)試現(xiàn)在會(huì)標(biāo)記內(nèi)核為 taint 狀態(tài),因?yàn)槔碚撋掀渲幸恍y(cè)試會(huì)讓系統(tǒng)狀態(tài)不佳。
linux-next 中仍有超過 6000 個(gè) changeset,所以 6.0 的合并窗口還遠(yuǎn)未完成。假設(shè)通常的時(shí)間表保持不變的話,這個(gè)窗口將一直開放到 8 月 14 日;當(dāng)然,在窗口關(guān)閉后,LWN 將發(fā)布后半部分的變動(dòng)總結(jié)。
全文完
LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。
長(zhǎng)按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開源社區(qū)的各種新近言論~
