在 Linux 内核中,kernfs 是一组函数,其中包含创建各种内核子系统内部使用的伪文件系统所需的功能。它通过将硬件设备和相关设备驱动程序的信息从内核的设备模型导出到用户空间来提供一组虚拟文件,成为一个独立且可重用的功能,因此其他内核子系统可以更轻松、更一致地实现自己的伪文件系统。
此前,具有 “数百个 CPU 和 64TB RAM” 的大型 IBM Power 系统需要 30 多分钟才能启动 Linux 内核,而且还需要额外的内核参数以避免内核在启动时超时。而造成该问题的原因即在于对不存在的文件进行多次路径查找以及 VFS 代码中的锁竞争。更糟糕的是,IBM Power 会将 64TB 的系统内存分成 256MB 的本地块,导致大量的 sysfs 节点创建。
而此次更改涉及将 Kernfs 互斥体切换为使用读写信号量以允许并行节点搜索、改善路径解析以及使用 VFS 缓存。通过这些优化,大型 IBM 系统的启动时间可缩短到 5 分钟以内。
更多详细内容,可查看该补丁集。
本文转自OSCHINA
本文Linux 5.15 解决大型 IBM 服务器启动过慢问题
本文地址:https://www.oschina.net/news/158319/linux-5-15-kernfs-improvement