英特爾處理器應該在 Linux 啟動過程中儘早加載任何 CPU 微代碼更新,以避免各種已知問題。當系統啟動並運行後“延遲加載”CPU 微代碼時,英特爾處理器上可能會發生各種問題,導致它們將 Linux 內核標記為在這種情況下受到污染。在 AMD CPU 上延遲加載微碼時也會污染內核,但現在這被認為是不必要的,據報導在 AMD 處理器上延遲加載 CPU 微碼是安全的。

在 Intel 處理器上延遲加載 CPU 微碼被稱為“危險”,因為 CPU 上的 SMT/超線程同步問題、更新微碼後模型特定寄存器 (MSR) 可能消失、機器檢查處理問題和中斷處理問題。

“延遲加載是在系統完全運行並運行實際工作負載時完成的。延遲加載行為取決於升級到新補丁之前 CPU 上的基本補丁是什麼。

這對於 Intel CPU 是正確的。

例如,考慮一個 CPU 的補丁級別 1,更新到補丁級別 3。

在 patch1 和 patch3 之間,patch2 可能已經棄用了軟件可見的功能。

這是不可接受的,如果軟件甚至可能使用該功能。例如,假設 MSR_X 在更新後不再可用,訪問該 MSR 將導致 #GP 錯誤。

基本上沒有辦法聲明新的微代碼更新適用用於延遲加載。這是導致延遲加載默認不啟用的另一個問題。”

Linux 內核 微碼文檔為感興趣的人列出了有關延遲加載的所有詳細信息。

今天由 AMD 的鮑里斯拉夫·佩特科夫 (Borislav Petkov) 發出聲明,聲明微代碼延遲加載在 AMD 系統上是安全的,並且在這種情況下不再污染 Linux 內核。

“AMD 上的延遲加載不存在上述並發問題:在 T0 上嘗試加載時,T1 處於停頓狀態並且不執行指令。因此,即使發生更高優先級的中斷或故障,整個核心將在應用微碼補丁之前或之後看到它。在任何一種情況下,T0 和 T1 都將具有相同的微碼修訂版,並且沒有任何中間內容。”

所以 此待定補丁,延遲加載時更新 CPU 微代碼只會觸發非 AMD 系統的內核污染.理想情況下,所有 CPU 微代碼更新都應在啟動時提前加載。

Categories: IT Info