在 Linux 5.15 合并窗口中,一組關于 Kernfs 性能改進的補丁通過驅動程序核心 PR 合并,可解決大型 IBM 服務器引導 Linux 內核過慢的問題。
在 Linux 內核中,kernfs 是一組函數,其中包含創建各種內核子系統內部使用的偽文件系統所需的功能。它通過將硬件設備和相關設備驅動程序的信息從內核的設備模型導出到用戶空間來提供一組虛擬文件,成為一個獨立且可重用的功能,因此其他內核子系統可以更輕松、更一致地實現自己的偽文件系統。
此前,具有 “數百個 CPU 和 64TB RAM” 的大型 IBM Power 系統需要 30 多分鐘才能啟動 Linux 內核,而且還需要額外的內核參數以避免內核在啟動時超時。而造成該問題的原因即在于對不存在的文件進行多次路徑查找以及 VFS 代碼中的鎖競爭。更糟糕的是,IBM Power 會將 64TB 的系統內存分成 256MB 的本地塊,導致大量的 sysfs 節點創建。
而此次更改涉及將 Kernfs 互斥體切換為使用讀寫信號量以允許并行節點搜索、改善路徑解析以及使用 VFS 緩存。通過這些優化,大型 IBM 系統的啟動時間可縮短到 5 分鐘以內。
更多詳細內容,可查看該補丁集。
本文地址:https://www.oschina.net/news/158319/linux-5-15-kernfs-improvement