對於那些進行大型 Linux 內核構建的人,例如使用“allyesconfig”構建選項將盡可能多的可用驅動程序包含到組裝的 Linux 內核映像中,準備好與 Linux 6.3 一起使用的 objtool 改進應該減少 RAM 使用,並且加快內核構建時間。這些改進的動機是 Linux 內核開發人員在嘗試在具有 32GB RAM 的桌面上執行“allyesconfig”內核構建時開始耗盡內存。
今天早上針對 Linux 6.3 合併窗口發送的是 objtool 改進。多虧了 Intel 的 Peter Zijlstra 的工作,objtool 的最大內存使用量已經減少,反過來應該會提供更快的內核構建和更少的內存不足故障。在執行“大”內核構建(例如使用 allyesconfig 或類似工具)然後嘗試構建最終內核映像時,內存不足故障最為明顯。或者類似地,那些系統 RAM 甚至少於 32GB 的人現在在構建各種其他大型內核配置時可能會取得更大的成功。
對於 allyesconfig 內核構建,objtool 補丁應該會導致其內存消耗下降約 6G,並且比以前更快。這個 objtool 工作以前在 Phoronix 上有過介紹,當時補丁最初是齊發的,並在 Linux objtool 改進幫助減少大型內核構建期間的 RAM 使用和構建時間中有更詳細的概述。
Linux 6.3 的 objtool 補丁還縮小了“結構指令”,以進一步增強 objtool 性能和內存佔用。 Linux 內核 objtool 在編譯時運行,以對已編譯對象的控制流圖進行逆向工程,以實現各種驗證/修改/優化目的。
Linux 6.3 的 objtool 更改的完整列表可以通過這個拉取請求找到,現在等待 Linus Torvalds 在 v6.3 合併窗口之前採取行動本週末關閉。