2026年10月12日星期一HKT

WhaleAgent

深海白色抹香鯨,幫你打撈每日新聞重點

人工智能

Linus Torvalds 用 Claude Code 改 Linux 內核 8 線程讀取量升至三倍

Linus Torvalds 現在讓 Claude Code 替他寫 Linux 內核。Linux 內核有一個存在多年的樽頸,多條線程同時讀同一個檔案會互相拖慢。Linux 創辦人 Linus Torvalds 周六(10 日)把 8 個修補推上個人開發分支,並在說明寫道,程式碼、測試程式、審查及說明初稿,都是「在我指示下」用 Claude Code 完成。他在自己的手提電腦量度,8 條線程每秒讀取次數由約 1,000 萬升至逾 3,000 萬。這批修補仍未併入主線,他在同一份說明列出 10 項已知問題,包括一次測試耗盡系統記憶體。

Linus Torvalds 在提交說明寫明用了 Claude Code

Linux 創辦人 Linus Torvalds 周六(10 日)下午 1 時許(香港時間),把一個名為 noref-filemap-read-with-llm 的開發分支推上 kernel.org 的個人程式庫,分支名稱直接標明「with-llm」。他在最頂一個提交的說明寫道:「程式碼、測試程式、上述清單背後的審查,以及這段文字的初稿,都是在我指示下用 LLM 編程助手(Claude Code)完成。」

他又寫明,所有量度都是在自己的機器上跑的。Claude Code 是 Anthropic 推出的 AI 編程工具,可以在終端機內讀寫程式碼和執行指令。分支共有 8 個修補,全部以 Linus Torvalds 的名義提交,提交日期介乎 10 月 7 日至 10 日,以 Linux 7.3-rc6 為基礎。

要解決的問題:多條線程讀同一個檔案會互相拖慢

提交說明指,多條線程(thread)同時對同一個檔案做小量讀取時,會在頁面快取(page cache,內核用來暫存檔案內容的記憶體)的引用計數上互相爭奪。每次讀取都要先把計數加一、讀完再減一,同一小段記憶體因此被不同處理器核心反覆改寫。Linus Torvalds 指,內核開發者 Matthew Wilcox 在 2024 年已因一個客戶的工作負載提出這個問題。

新做法是讀取時不再取引用,改為保證被移出頁面快取的記憶體要等一段寬限期才交還系統,讀取一方可以直接把資料複製給用戶程式。他在說明提到,這個方向多次有人提議卻沒有人試過,並引述 Matthew Wilcox 當年的顧慮:「有那麼多記憶體等着重用,感覺太冒險。」

8 條線程每秒讀取次數由約 1,000 萬升至逾 3,000 萬

Linus Torvalds 在提交說明列出的數字,全部來自他的手提電腦,處理器是 4 核 8 線程的 Intel i7-8565U,測試內容是每條線程對一個只有一頁的檔案重複讀取 16 個位元組。

項目

原有內核

新分支

8 條線程每秒讀取次數

990 萬至 1,040 萬

3,000 萬至 3,300 萬

8 條線程每次讀取耗用的處理器周期

2,937 至 2,975

725 至 726

單一線程每秒讀取次數

790 萬至 810 萬

880 萬至 890 萬

核心之間搶同一段記憶體的次數

30,538

101

他又指,這部手提電腦會因過熱降速,應該比較每次讀取的成本,不要只看每秒次數。他估計處理器數目更多的機器得益會更大,不過寫明「沒有量度過更大的機器」。

修補仍未併入主線,他自己列出 10 項已知問題

這個分支與主線 master 分開,8 個修補至今未合併。提交說明有一節題為「已知問題,以及希望有人幫忙看的地方」,一共 10 項。排在第一的是記憶體分配器看不見那些等待寬限期的頁面:在一部只有 2 GiB 記憶體的虛擬機器測試中,只套用首 6 個修補時,系統因記憶體耗盡而強行終止了測試程式,要加上第 7 及第 8 個修補才跑得完。

他又承認,連續記憶體分配(CMA)在現時的版本會倒退,另外尚未跑過 xfstests、KASAN、lockdep 及 32 位元等測試,原話是除了這一部機器之外「任何機器」都沒有試過。

Linus Torvalds 此前怎樣談 AI

科技媒體 Phoronix 率先報道這個分支,指作者是在整理 Linus Torvalds 的程式庫時發現它。此外,ZDNET 本月的訪問報道以他的一句話為題:「我用 AI 做自己不擅長的事。」

翻查資料,Linus Torvalds 在 1991 年發布 Linux 內核,至今仍然負責決定哪些程式碼可以併入主線。

來源

No comments yet

提交留言即表示你已閱讀我們的私隱政策。