工程趣聞 2026 年 8 月 23 日

2026-08-23 — Torvalds 靠 AI 除錯 Intel GPU、NetBSD 舊文重新翻紅、macOS 27 棄用 hdiutil

primary=https://github.com/torvalds/linux/commit/818bebeb63dd6bf5f4e07e145f6cdbace520a34c primary=https://mail-index.netbsd.org/netbsd-advocacy/2005/09/10/0000.html primary=https://lapcatsoftware.com/articles/2026/8/7.html

AI 一度斷言「無法解決」,Torvalds 仍靠它揪出 Intel Xe 顯示卡的記憶體越界寫入

GitHub · torvalds/linux commit 818bebe · 2026-08-22

Linux 核心維護者 Linus Torvaldsdrivers/gpu/drm/xe/xe_vram.c 送出一個修正,解決 Intel Xe 顯示卡驅動在 Battlemage G21 顯示卡上的記憶體越界寫入問題。這個修正特別的地方,在於 commit message 坦承整個除錯過程借助 AI 協助,而 AI 一度斷言這個 bug「不可能修好」。討論串 2026-08-22 登上 Lobsters,話題聚焦在該不該把 AI 除錯記錄寫進正式 commit message。

原本的問題

驅動裡的 get_flat_ccs_offset() 函式負責讀出硬體壓縮中繼資料區(Compression Control Surface,簡稱 CCS)在 VRAM 裡的起始位置,再把這個位址無條件往上捨入到 128K 邊界,當作「可用記憶體」的分界線交給配置器。問題是往上捨入等於把 CCS 硬體本來要用的那段記憶體,也一併標記成「使用者可配置」。在 16 GiB 的 Battlemage G21 上,CCS 基底原始值是 0x3fafff800,往上捨入後變成 0x3fb000000,於是 0x3fafff000 這個 page 最後 2 KiB 明明是 CCS 儲存區,卻被算進配置器的可用記憶體池。壓縮硬體之後寫入這塊記憶體時,會直接覆蓋使用者程式已配置到的資料,導致分頁表錯亂與顯示當機。

除錯與修正

Torvalds 在 commit message 中描述,他找 AI 當「除錯助手」,但 AI 幾次直接表示這個問題無解;他持續要求 AI 加除錯程式碼、分析結果,前後跑了 24 個除錯用 patch、開機測試 18 次才定位到問題根源。最終修正只有一行:把 round_up(offset, SZ_128K) 換成 round_down(offset, SZ_4K),讓配置器只拿到確定安全、不會踩到壓縮硬體區塊的記憶體。

原始來源:torvalds/linux commit 818bebe


換成 NetBSD 之後,他終於不用再從遊樂園被叫回機房

netbsd-advocacy mailing list · 2005-09-10(2026-08-22 重新被討論)

Gary Rolland 是英國一家公司的網路管理者,他在 2005 年 9 月於 netbsd-advocacy 信件列表寫下一封長信,說明把公司架構從 Windows 換成 NetBSD 後帶來的改變。他的團隊維運 29 台伺服器,服務 4,800 名使用者,每天透過 MySQL、Apache、Postfix、Samba 處理超過 870 GB 資料。這篇舊文 2026-08-22 在 Lobsters 被重新翻出討論,起因是它把「系統穩定性」與工程師的生活品質直接掛在一起講。

促成轉換的關鍵是一次家庭出遊:Rolland 帶女兒去 Alton Towers 樂園玩,卻因 Windows 伺服器當機被緊急電話叫回公司,他寫道「女兒的臉垮下來,她早就知道接下來會發生什麼事」。這種假日、深夜被叫回機房的模式反覆發生,他因此向主管申請在兩台測試機上先裝 NetBSD 試用,結果穩定度明顯優於原本的 Windows 環境,團隊接著逐步把整個網路都遷移過去。遷移完成後緊急叫修大幅減少,他和團隊多出時間陪家人,也有餘力鑽研技術細節,信末他寫下「NetBSD 改變了我們團隊的人生」。

原始來源:netbsd-advocacy mailing list, 2005-09-10


macOS 27 Golden Gate 棄用 hdiutil,換上的 diskutil image 快但漏了幾個關鍵功能

Lapcat Software · 2026-08-14

Jeff Johnson 在部落格 Lapcat Software 發文指出,Apple 在最新 beta macOS 27 Golden Gate 裡把沿用超過二十年的磁碟映像工具 hdiutil 標為 deprecated,官方文件寫著「在 macOS 27.0,hdiutil 已棄用,所有磁碟映像操作請改用 diskutil image」。他實測了新舊兩個指令在建立加密映像檔時的差異。

新舊指令怎麼換

time hdiutil create -encryption -format UDZO -noatomic -noscrub \
  -srcfolder /Users/stupiduser -stdinpass -verbose /Users/Shared/hdiutil.dmg

time diskutil image --stdinpassphrase --verbose create --encrypt from \
  --format UDZO /Users/stupiduser /Users/Shared/diskutil.dmg

實測結果

同一份來源資料夾,diskutil image 只花 40 到 45 秒完成加密映像檔,產出檔案 2.8 GB;舊的 hdiutil 則要 110 到 115 秒,檔案還略大到 2.89 GB。速度差距明顯,但 Johnson 也指出新工具目前少了幾個舊指令具備的能力:沒有對等的詳細 verbose 記錄輸出,遇到來源檔案權限問題時會直接靜默失敗、不會像 hdiutil 一樣跳出授權提示,也還沒有對應 -[no]scrub 的選項,只能依賴 diskutil 內建、無法關閉的自動清除暫存檔行為。

原始來源:Lapcat Software, hdiutil is deprecated in macOS 27 Golden Gate


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