Linux 的32 位內核自Meltdown 以來一直有問題
Linux 內核的x86 32 位支持已經開始出現一些輕微的問題。大多數內核開發人員不再積極測試x86-32,發行版供應商也開始放棄對32 位的支持。其最新例子是,自Meltdown 漏洞緩解措施以來,在過去一年中,出現在主線內核中的一些錯誤的、未定義的行為功能。
英特爾的Meltdown 漏洞公佈幾個月後( x86_64 被緩解),Linux KPTI 支持x86 32 位以試圖解決這個問題(從1 月份的公開到7 月份的主流就緒),但事實證明,它結果暴露了一個32的錯誤。
內核頁表隔離支持暴露了x86 32 位上的I/O TLB 映射問題。該原因是內核中未定義的行為,導致數據損壞、內核Oopes/Panics 和自發重新啟動。
據報導,KPTI 在32 位上隨機鎖定或重新啟動的錯誤報告至少可以追溯到去年12 月。現在,Linux 5.3 Git 在5.3-Rc2 標記之前就有了修復。
內核的vmalloc 代碼現在正在積極同步取消對系統中所有頁表的映射,然後再重用這些區域,這將解決過去一年一直存在於崩潰x86-32 內核上的32 位未定義行為。這個補丁將用於Linux5.3-Rc2,並可能會在短時間內移植到穩定的系列中。
來源:phoronix