後端工坊 2026 年 8 月 10 日

2026-08-10 — Linux 7.2-rc7 進入收尾、四支穩定核心同時釋出、Go PGO 效能實測

primary=https://lwn.net/Articles/1087960/ primary=https://lwn.net/Articles/1087950/ primary=https://lemire.me/blog/2026/08/09/profile-guided-optimization-in-go/ primary=https://go.dev/doc/pgo

Linux 核心進入 7.2-rc7,Linus Torvalds:下週應可定案

LWN.net · 2026-08-09

版本進度

Linus Torvalds 於 2026 年 8 月 9 日發布第七個候選版本 7.2-rc7,距離 7.2 正式版僅剩最後一哩路。rc7 代表這是本輪合併週期的第七次候選釋出,通常只在仍有殘留問題需要修補時才會出現,多數週期到 rc6、rc7 就會收尾。本輪異動涵蓋超過 500 個獨立提交,橫跨驅動、檔案系統與核心網路子系統。Linus 在信中坦言:「我沒辦法說對這次的規模感到興奮,但事實就是如此——這是新常態,許多修補都來自各種 AI 工具的審查。」

修補重點

本輪 diffstat 中s390/zcrypt 加密子系統的修正最為顯眼,此外還包含:

  • btrfs 修復 worker 基礎架構的還原(fixup worker infrastructure restoration)
  • netfilter ipset 的邏輯修正
  • KVM s390 記憶體管理與鎖定機制修正
  • XFS 檔案系統修復與 inode 處理改進
  • 輸入裝置驗證強化,以及 TCP/UDP/橋接協定的網路修補

後續時程

Linus 表示目前沒有理由延後 7.2 的發布,若沒有嚴重問題浮現,預計下週末(約 8 月 16 日前後)就會定案為正式版 7.2。正式版釋出後,下一個合併窗口將隨即開啟,開發者可以開始提交 7.3 的新功能。

原始來源:LWN.net – Kernel prepatch 7.2-rc7


Greg Kroah-Hartman 週末連發四支穩定核心更新

LWN.net · 2026-08-09

版本進度

Greg Kroah-Hartman 在 2026 年 8 月 9 日同一個週末釋出四支穩定核心分支的更新:7.1.86.18.446.12.1036.6.151。每一支公告都附上例行但明確的提醒:「所有使用該系列核心的用戶都必須升級。」以資訊最完整的 7.1.8 為例,此次變動涉及 454 個檔案、新增 5,956 行、刪除 3,358 行,超過 200 位貢獻者參與。

修補重點

7.1.8 的修正橫跨多個子系統,虛擬化與繪圖驅動是本次重災區

  • KVM/虛擬化穩定性修正
  • GPU 驅動修補(AMD、Intel i915 與 Xe)
  • CAN 匯流排協定修正
  • 藍牙 ISO socket 參照計數的競爭條件(race condition)修復
  • btrfs 與 EROFS 檔案系統完整性問題
  • 網路驅動記憶體洩漏修正

後續時程

同時維護 7.1、6.18、6.12、6.6 四條分支,反映目前穩定核心維護的並行規模——長期支援(longterm)分支與較新的穩定分支各自累積修補,獨立於上方提到的 7.2 主線開發週期之外持續釋出。

原始來源:LWN.net – Four weekend stable kernel updates


實測 Go 的 Profile-Guided Optimization:真實負載下增益有限

lemire.me(經 lobste.rs 討論)· 2026-08-09

背景

Profile-Guided Optimization(PGO)讓編譯器不再只靠靜態啟發式規則做決策,而是餵入實際執行期間蒐集到的效能剖析(profile)資料,藉此判斷哪些函式該優先內聯(inline)、哪些介面呼叫可以去虛擬化(devirtualization)。Go 自 1.20 起支援 PGO,依官方文件所述,Go 團隊在 1.22 版的代表性程式上量到 2% 至 14% 的效能提升。

作法與量測

Daniel Lemire 的量測流程遵循官方建議的三步驟工作流程:先編譯不含 PGO 的基準版本,以 runtime/pprof 蒐集 CPU 剖析檔,再用該檔案重新編譯。

go build -o bench .
# 蒐集 profile 後
go build -pgo=cpu.pprof -o bench_pgo .

他挑選三個 JSON 剖析基準測試實測,結果增益普遍落在個位數百分比

測試檔案基準吞吐量PGO 增益
twitter.json112 MB/s+3.1%
canada.json74 MB/s+4.7%
citm_catalog.json116 MB/s+2.8%

相較於 Google 在 2016 年 Chrome 專案上採用 PGO 拿到最高 15% 增益的案例,Lemire 認為兩者落差不小:「增益幅度普遍不大,大多數差異落在 2% 至 3% 之間。」

適用場景與限制

官方文件建議將剖析檔案命名為 default.pgo 並直接提交進版本庫,go build 會自動偵測並套用;也可用 -pgo=off 關閉,或以 -pgo=/path 指定自訂路徑。剖析資料的代表性是關鍵前提——官方文件明確指出微基準測試(microbenchmark)並不是好的 PGO 素材,因為只涵蓋程式一小部分執行路徑,蒐集自正式環境的流量才最有效。Go 的 PGO 實作對原始碼有一定容忍度,允許剖析當下的版本與目前建置版本存在部分行號偏移,但若熱點函式被改名或搬到別的套件,對應關係就會失效。

原始來源:Daniel Lemire – Profile-guided optimization in Gogo.dev – Profile-guided optimization


End of article
0
Would love your thoughts, please comment.x
()
x