Linux 移除 MMX,目標是最後一批 Pentium 時代的 RAID 最佳化
Linux 開發人員正準備移除核心中最後一批 Intel MMX 最佳化,為始於 1997 年 Pentium 處理器的篇章畫上句號。這項 Linux 移除 MMX 的提案針對專門的儲存運算,同時保留現有軟件備援機制。其核心取捨相當直接:維護人員需處理的舊有程式碼更少,但極舊系統可能要付出效能代價。
MMX 是 Intel 用於處理封裝資料的指令擴充功能,曾協助軟件加速多媒體及其他重複性運算。核心中餘下的實作服務於軟件 RAID,也就是在作業系統控制下將多個磁碟組合使用。由於通用替代方案已能完成相同工作,這些實作現正面臨退役。
預期目標是將於 2027 年推出的 Linux 7.5,但這仍只是版本預期,而非已完成的主線合併。對受影響硬件的擁有人而言,兩者分別很重要。這項提案改變特定儲存運算的執行方式;它本身並不代表每部 Pentium 時代的電腦都能執行未來的核心。
Linux 移除 MMX 不只涉及單一 XOR 常式
該提案移除的是一小組舊有 RAID 實作,而不是停用其所加速的儲存功能。
Eric Biggers 於 2026 年 10 月 25 日提交這個系列。其 MMX 退役提案包含三個修補程式,涵蓋 XOR、RAID6 及處理器功能檢查。所提交的變更涉及七個檔案,新增 12 行、刪除 837 行。
XOR 是一種結合數值的位元運算,有助計算同位元資訊,即用於重建遺失資料的冗餘資訊。RAID6 是一種可承受兩個磁碟故障的儲存配置,需要進行超出基本 XOR 的額外運算。因此,將整個系列視為刪除一個 XOR 常式,會低估其範圍。
這項分別亦可避免對標題作出誇大的解讀。移除最佳化實作會改變可用的執行路徑;移除 RAID 支援則會消除一項儲存功能。已提交的提案描述的是前者,受影響的處理器將使用現有的通用程式碼。
Phoronix 報道,相關工作已進入 Andrew Morton 的 MM 開發樹,並指 Linux 7.5 為最可能的目標。其 核心 MMX 報道將該版本目標表述為預期。截至 11 月 9 日,這是為圍繞變更作規劃的讀者採用的恰當說法。
開發樹顯示相關工作正朝整合推進,但不代表擬定的版本目標已成定局。審查、整合決策及後續修訂,仍可能影響最終進入正式核心的內容。
對於透過懷舊式標題認識 Linux 移除 MMX 解說的讀者,在談歷史之前,這項狀態分別值得留意。已核實的事件是已提交的清理系列,並有報道指其進入開發樹;未來事件則是它預期會在主線版本中出現。
實際界線同樣重要。該系列涉及核心內部的實作,即作業系統的核心部分。它並非描述全面禁止應用程式使用 MMX 指令,也不是宣告 Intel 處理器將不再識別這些指令。
這項界線改變了「一個時代的終結」所代表的意思。核心將完成退役自身針對 MMX 的最佳化工作。更廣泛的軟件生態,包括歷史應用程式與保存下來的作業系統,則有各自的生命週期。
對維護人員而言,該提案提供明確機會,可簡化程式碼中仍存的一個角落。對使用者而言,它引出一個更狹窄的問題:其特定機器目前是否選用了其中一種實作。這問題直接引向硬件要求。
受影響系統位於不同指令門檻之下
關鍵分界線是處理器能力及工作負載,而不只是電腦是否帶有 Pentium 名稱。
Biggers 的 XOR 移除修補程式指出,受影響路徑服務於不支援 SSE 的舊式 32 位元處理器。SSE,即 Streaming SIMD Extensions,是用於處理多個資料元素的較後期指令擴充功能。該修補程式亦將相關使用情況限於實際運行 RAID 陣列的系統。
RAID6 修補程式則劃出另一條界線:不支援 SSE2、即該指令家族後續擴充功能的處理器。其 RAID6 實作變更亦移除名為 sse1.c 的檔案。Biggers 解釋,這項實作仍使用 MMX 運算,並以 SSE 記憶體操作作補充。
該檔名是一項具啟發性的細節。快速瀏覽可能令人以為,該系列同時移除了與 MMX 並列、獨立而較現代的替代方案。修補程式說明反而指出,這是另一項建基於舊有機制的實作。
對任何評估 Intel MMX 效能影響的人而言,這些不同門檻相當重要。處理器是否支援 SSE,並不會自動判定它是否受系列中每一部分影響。所選用的實作及涉及的 RAID 運算,決定了相關比較。
假設一名發燒友在保存下來的 Pentium II 儲存機器上,運行受支援的核心配置。若其陣列使用即將退役的實作,實際變更將涉及運算效能。備援機制的存在意味著,所提議的程式碼移除不會自動令該運算消失。
再考慮一名在現代工作站上讀到同一標題的開發人員。MMX 指令擴充功能本身的年代,幾乎無法說明該工作站所選用的儲存實作。真正有用的證據將是其實際處理器能力及核心行為。
這些例子旨在說明受影響範圍,而非確立已量度的結果。已審閱的材料並未提供正在使用退役路徑的活躍機器清單。因此,這些材料無法支持對受影響使用者作出精確估計。
真正面對實質決策的人,是將舊式處理器能力與相關儲存工作負載結合使用的營運人員。他們需要確認升級是否會改變所選用的實作,以及由此產生的任何速度下降是否重要。
發行版維護人員亦面對相關的溝通工作。他們的核心配置、套件可用性及處理器要求,仍與這項最佳化清理工作分開。使用者需要這些細節,才能將未來版本解讀為保存硬件的升級選項。
因此,維護方面的取捨觸及一個狹窄的技術受眾,而他們可能有特定需要。受影響範圍小不代表沒有影響,而是代表回應應依據實際硬件與工作負載證據,而非一個耳熟能詳的處理器名稱所帶來的情感份量。
通用程式碼保留功能,同時減少特殊情況
該提案把保留一項功能,與保留該功能的每種歷史實作區分開來。
純量備援機制,即不使用即將退役的 MMX 實作、逐一處理數值的普通程式碼,讓維護人員有此選擇。Biggers 表示,現有備援機制已經過良好測試。這是作者在移除專門路徑之際保留功能的既定依據。
這句說法應有適當的適用範圍。它支持提案的延續性論點,但並非針對每部受影響機器發表的效能基準。輸出正確與速度相同,是兩種不同特性。
若視為不同實作之間的選擇,維護邏輯便更容易理解。專門程式碼若能服務使用者或帶來實用效能,便可證明其存在合理。它持續存在,亦代表每逢相關程式碼變更時,審查人員都必須理解更多內容。
通用程式碼提供一個共同位置以維護行為。這不代表每種專門實作都不再必要,而是改變保留舊實作所需的證據:應有值得保留的實際好處。
這正是 Linux 移除 MMX 比一個歷史周年紀念更有意思之處。該專案正衡量一條餘下的效能路徑,與持續承擔其複雜性的取捨。可行替代方案的存在,令刪除成為可能,但不代表這項決定毫無代價。
第三個修補程式將這項簡化延伸至處理器功能檢查,該檢查會根據可用硬件能力選擇合適實作。Biggers 提議移除冗餘的先決條件檢查,並避免重複檢查相同功能。已提交的程式碼保留較新的實作,包括 SSE2 及 AVX2 路徑。
AVX2 是較後期的向量指令擴充功能,提供另一種在單次操作中處理多個數值的方式。其存在比品牌競爭更清楚地說明技術比較。問題在於哪種實作適合該處理器,並仍值得維護。
Intel 的名稱主導這段歷史,因為它引入了 MMX。然而,實際的維護決定關乎受支援的處理器功能,而不是供應商品牌。比較歷史上的 Intel 與 AMD 產品,無法判定某項核心實作是否仍值得保留。
同一邏輯亦說明,行數減少需要謹慎解讀。較少行數描述的是原始碼變更的規模,並不直接量度更快的儲存效能、更少缺陷,或維護工時的特定減幅。
因此,支持這項清理工作的最強理由是結構性的。共同備援機制保留了運算功能,而該系列則移除原為較舊能力範圍而設的實作。效能主張需要額外證據。
從這角度看,Linux 移除 MMX 解說是一個圍繞既有功能縮減實作負擔的故事。核心可繼續完成同一工作,同時退役其中一種歷史方法。這種平衡是否合適,部分取決於餘下使用者。
MMX 的漫長退役反映維護取捨的轉變
這個歷史里程碑確實存在,但 MMX 的推出日期並不能量度每項被刪除實作的年齡或價值。
Intel 於 1997 年 1 月 8 日推出配備 MMX 技術的 Pentium 處理器。其當時的 Pentium MMX 發布著重圖像、影片及音訊。一項以更豐富個人電腦媒體為賣點的技術,最終仍存留於核心的儲存運算之中。
這段歷史解釋了為何該提案獲得儲存開發以外的關注。MMX 曾是顯眼的消費者功能,與個人電腦發展中一個容易辨認的時期相關。它最後一批核心最佳化帶有象徵意義,這是一般清理工作鮮有獲得的。
象徵意義不應掩蓋實際時間線。指令擴充功能可以早於使用它的程式碼。稱此為 1997 年技術的退役是準確的;但若假定每一行被移除的原始碼都可追溯至 1997 年,則需要另外的證據。
該提案亦延續了較早前的移除工作。Biggers 指出,先前已有一個提交移除了記憶體函式的 MMX 最佳化,包括 memcpy()、copy_page() 及 clear_page()。這些函式用於複製資料或初始化記憶體,與餘下的 RAID 工作無關。
這些較早前的退役改變了目前事件的詮釋。這是一次較狹窄清理工作的完成,而非突然決定驅逐一項被廣泛使用的技術。在其他最佳化工作消失後,RAID 一直是核心中僅餘的例外用途。
一項歷史性的最佳化措施,可能逐漸失去原有理據。硬件改變、替代實作出現,而使用最舊路徑的群體亦愈來愈難以確定。程式碼在整個過渡期間仍可保持可用。
這帶來一個反覆出現的維護問題:一個專案應投入多少持續關注,去維護一條實際使用者群不明朗的路徑?當功能可在其他地方保留時,刪除是其中一個答案。當使用者能證明其具實質效益時,保留程式碼則是另一個答案。
兩種立場都不代表要否定舊硬件。保存工作與維護現代通用核心有不同目標。即使某種歷史行為已不再值得獲得專屬的上游實作,愛好者仍可能重視重現它。
反過來亦然。懷舊並不能證明專用程式碼仍有活躍使用者、現行測試,或具實際效能優勢。這些都是值得以技術證據回答的技術問題。
更廣泛的教訓,在於相容性的條件。保留演算法可用、保留處理器專用最佳化,以及支援一整部機器,是各自獨立的承諾。專案可以改變其中一項,同時讓其他項目繼續受各自要求所規限。
對開發者而言,這是一個有用例子,說明軟件如何老化而非單純失效。一項最佳化可以由必要變成可有可無,最後變得難以合理化。其退役反映的是維護取捨的改變,而非對硬件歷史重要性的評價。
缺失的證據,是受影響硬件上的量度效能
保留的備援路徑代表仍可繼續運作,並不保證效能維持不變。
現有修補程式說明了解 Biggers 為何認為這些專用程式碼已過時。但它們沒有提供受影響機器在變更前後,執行具代表性儲存工作負載的量度比較。因此,實際成本仍未有定論。
這個缺口應限制兩方面的說法。現在就宣稱每個受影響系統都會明顯變慢,言之過早;同樣地,承諾所有人都不會察覺,亦言之過早。
Intel MMX 的效能影響取決於實際操作中時間花在哪裏。當處理是限制因素時,較慢的計算所造成的影響,會與由其他元件主導時不同。單憑提案本身,無法為某一特定機器確定這種平衡。
獨立的計算測試可回答一個有用問題:在受控條件下,舊實作與替代方案相比如何。儲存工作負載則可回答另一個問題:該差異會否改變操作員實際執行的工作。
這些結果不應被視為可以互換。計算吞吐量的明顯差異,並不會自動轉化為等同的應用程式效能差異。同樣地,可接受的日常工作負載,可能會忽略一項較少發生、但對其擁有人重要的操作。
對一個被保存的儲存系統而言,維護活動可能與日常存取同樣相關。操作員可能關心復原工作、持續寫入,或執行其他工作時的處理器可用性。這些是建議的評估範圍,而非該系列已確立的量度回歸。
因此,最有力的反對意見會來自受影響配置上的可重現結果。這類證據可以顯示專用路徑仍具實際價值,亦能讓審閱者獲得比假設尚有多少舊機器更具體的依據。
最有力的支持,則會把持續正確性與相關硬件上的可接受表現結合起來。這將加強共享實作足以滿足剩餘需求的論點。同樣地,提案的存在本身不能取代這些觀察。
相容性主張亦需要同樣克制。移除這些最佳化檔案,並不能證明儲存陣列的格式有所改變;它亦不能保證每個舊系統都能啟動未來的核心。
使用者必須評估完整的升級環境,包括發行版要求及其硬件配置。一項狹窄的原始碼變更,無法回答關於某部機器未來支援的所有問題。將它描述成可以,會混淆不同的決定。
同樣地,這裏亦沒有依據宣傳廣泛的安全性改善。減少專用程式碼可能會簡化審閱,但提交的理據並未指出這次刪除修正了任何漏洞。除非有額外證據支持,維護效益應維持為維護層面的主張。
因此,負責任的解讀應保持審慎。該系列提供了一種可信的方法,在保留計算功能的同時降低舊有複雜度。餘下的爭論,關乎被移除加速功能的價值,以及判斷該價值所需的證據。
留意整合、備援測試及發行版交付
下一批有用進展會是可觀察的里程碑:主線整合、在受影響系統上的測試,以及透過實際核心套件交付。
首先,留意該系列是否進入主線核心,以及哪個版本包含它。據報 Linux 7.5 仍是預期目標。獲確認合併將加強與特定版本相關的說法,並為下游審閱者提供明確變更。
修訂、延遲或撤回,都會改變這項評估。較廣泛的提案仍會有記錄,但預期發佈時間需要更新。讀者應避免將開發樹報告視為無條件的發行說明。
確切的合併版本亦會很重要。即使整體方向得以保留,審閱仍可能改變範圍或實作細節。追蹤獲接受的變更,會比無限期依賴最初提交,為相容性分析提供更穩固基礎。
其次,留意實際使用即將退役路徑的硬件所產生的正確性及效能結果。在不相關的新型處理器上進行測試,無法判定受影響舊系統的體驗。相關比較需要相符的配置及清晰的工作負載。
可信的報告應區分成功運作與速度令人滿意,亦應說明量度了甚麼,以及變更前是否選用了舊實作。沒有這些背景,一個結果即使準確,也可能與所提出的取捨無關。
可接受的結果會加強通用程式碼能滿足剩餘需求的論點。具有操作後果的可重現回歸則會削弱它。無論結果如何,均可用證據取代假設,改善討論。
第三,留意發行版交付。上游發行版本並不能確定使用者所選發行版何時會封裝該核心,或支援其機器。套件配置及處理器要求仍是實際升級決策的一部分。
對維護舊系統的人而言,有意義的里程碑是可用、並符合完整環境要求的核心。在此之前,該提案是相關的規劃資訊,而非立即更換硬件的指示。
這些觀察亦讓歷史敘事保持適當比例。這次退役值得關注,因為它為核心最佳化中一個可辨認的篇章畫上句號。其技術重要性將取決於哪些內容被合併、剩餘路徑如何表現,以及誰會遇到這項變更。
對工程團隊而言,將這些區分記錄下來,可防止標題演變成缺乏依據的相容性假設。一個可搜尋的知識庫可在評估升級時,連結獲接受的修補程式、本機配置及測試結果。
如你維護受影響硬件,請先從你實際運行的配置,以及所需執行的儲存工作開始。在測試包含該變更的核心前,記錄所選用的實作。比較能反映你工作負載的結果,並將正確性與速度分開看待。如你維護較新的系統,請追蹤獲接受的修補程式,而非將每一項提及 MMX 的內容都視為相容性警告。Linux MMX 移除最有參考價值之處,是作為一項有記錄的維護決定,其效益與成本均與可觀察的行為相連。請追蹤合併、檢視相關測試報告,並在決定這次退役對你的機器意味著甚麼之前,查核發行版的要求。



