EDAC 記憶體修復控制¶
版權所有 (c) 2024-2025 海思半導體有限公司。
- 作者:
Shiju Jose <shiju.jose@huawei.com>
- 許可證:
GNU 自由文件許可證,版本 1.2,不包含不變章節、封面文字和封底文字。(根據 GPL v2 雙重許可)
- 原始審閱者:
編寫版本: 6.15
簡介¶
某些記憶體裝置支援修復操作以解決其記憶體介質中的問題。封裝後修復 (PPR) 和記憶體備用是此類功能的示例。
封裝後修復 (PPR)¶
封裝後修復是一種維護操作,它請求記憶體裝置對其介質執行修復操作。它是一種記憶體自愈功能,透過用 DRAM 裝置中的備用行替換失效的記憶體位置來修復故障記憶體位置。
例如,具有支援 PPR 功能的 DRAM 元件的 CXL 記憶體裝置實現了維護操作。DRAM 元件支援以下型別的 PPR 功能:
硬 PPR,用於永久行修復,以及
軟 PPR,用於臨時行修復。
軟 PPR 比硬 PPR 快得多,但修復會在斷電重啟後丟失。
在修復操作期間,資料可能無法保留,記憶體請求可能無法正確處理。在這種情況下,修復操作不應在執行時執行。
例如,對於 CXL 記憶體裝置,請參閱 CXL 規範修訂版 3.1 [1] 的 8.2.9.7.1.1 PPR 維護操作、8.2.9.7.1.2 sPPR 維護操作和 8.2.9.7.1.3 hPPR 維護操作部分以獲取更多詳細資訊。
記憶體備用¶
記憶體備用是一種修復功能,它以特定的粒度用一部分功能記憶體替換一部分記憶體。記憶體備用具有快取行/行/bank/rank 備用粒度。例如,在 rank 記憶體備用模式下,一個記憶體 rank 在同一通道上的其他 rank 發生故障時作為備用。
備用 rank 被保留,直到指示故障發生才用作活動記憶體,保留容量從系統中總可用記憶體中扣除。
在受記憶體備用保護的系統中,當錯誤閾值被超出後,故障 DIMM rank 的內容會複製到備用 rank。然後故障 rank 下線,備用 rank 上線,用作代替故障 rank 的活動記憶體。
例如,CXL 記憶體裝置可以支援各種備用操作子類,這些子類在執行備用的範圍方面有所不同。
快取行備用子類指可以替換整個快取行的備用操作。行備用是 PPR 備用功能的替代方案,其範圍是單個 DDR 行。Bank 備用允許替換整個 bank。Rank 備用定義為替換整個 DDR rank 的操作。
有關更多詳細資訊,請參閱 CXL 規範 3.1 [1] 的 8.2.9.7.1.4 記憶體備用維護操作部分。
通用記憶體修復功能控制的使用場景¶
軟 PPR、硬 PPR 和記憶體備用功能共享相似的控制屬性。因此,需要一個標準化、通用的 sysfs 修復控制,該控制暴露給使用者空間並由管理員、指令碼和工具使用。
當 CXL 裝置檢測到記憶體元件中的錯誤時,它會透過使用一個事件記錄(其中設定了“需要維護”標誌)來通知主機需要執行修復維護操作。該事件記錄指定了需要修復的記憶體的裝置物理地址 (DPA) 和屬性。核心將相應的 CXL 通用介質或 DRAM 跟蹤事件報告給使用者空間,並且使用者空間工具(例如 rasdaemon)使用 sysfs 修復控制響應裝置請求來啟動修復維護操作。
使用者空間工具(例如 rasdaemon)在以下情況下請求對記憶體區域執行修復操作:設定了維護需要標誌,或報告了未糾正的記憶體錯誤,或糾正的記憶體錯誤超過閾值,或該記憶體的糾正錯誤閾值超出標誌被設定。
每個記憶體裝置可能存在多個 PPR/備用例項。
驅動程式應確保線上修復是安全的。在記憶體對映功能可能在不同引導之間變化的系統中,一種方法是記錄本次引導中遇到的記憶體錯誤,並以此檢查線上記憶體修復請求。
檔案系統¶
已註冊記憶體修復例項的控制屬性可以在 /sys/bus/edac/devices/<dev-name>/mem_repairX/ 中訪問。
sysfs¶
Sysfs 檔案在 ABI 檔案測試/sysfs-edac-memory-repair 中有詳細說明。
示例¶
記憶體修復的使用方法如本例所示
CXL 記憶體備用
記憶體備用定義為一種修復功能,它在相同的 DPA 處用一部分功能記憶體替換一部分記憶體。此操作的子類,即快取行/行/bank/rank 備用,在執行備用的範圍方面有所不同。
實現 CXL.mem 協議的 CXL 裝置可能支援記憶體備用維護操作。備用維護操作請求 CXL 裝置對其介質執行修復操作。例如,具有支援記憶體備用功能的 DRAM 元件的 CXL 裝置可能實現備用維護操作。
CXL 記憶體軟封裝後修復 (sPPR)
實現 CXL.mem 協議的 CXL 裝置可能支援封裝後修復 (PPR) 維護操作。PPR 維護操作請求 CXL 裝置對其介質執行修復操作。例如,具有支援 PPR 功能的 DRAM 元件的 CXL 裝置可能實現 PPR 維護操作。軟 PPR (sPPR) 是一種臨時行修復。軟 PPR 可能更快,但修復會在斷電重啟後丟失。
記憶體修復的 Sysfs 檔案在 ABI 檔案測試/sysfs-edac-memory-repair 中有詳細說明