清理掉积累数十年的内核依赖,可将 Linux 构建性能提升 50~80%

2022-03-01 11:48:32 浏览数 (1)

作者 | Tina

1 月 2 日,长期从事 Linux 内核开发的 Ingo Molnar 发布了一组大规模的补丁,用来重塑 Linux 内核的头文件层次结构和依赖关系,补丁数量多达 2297 个。这项工作的目标是加快 Linux 内核的构建时间,同时清理一些东西,以解决"依赖性地狱"问题。

去年,Linux 的源代码达到了 2780 万行,代码行数量惊人,而且未来还会继续增长。Ingo Molnar 认为,如果 Linux 源代码更轻,该平台可以变得更快、更高效。为了实现这一目标,Ingo Molnar 宣布了“Fast Kernel Headers”项目,试图清理和改造 Linux 内核的头文件层次结构和头文件依赖项。

Linux 大约包含 10,000 个带有 include/ 和 arch/*/include 层次结构的主 .h 头文件。Molnar 说,多年来,这些已经“成长为一组复杂而痛苦的交叉依赖,我们称之为‘依赖地狱’。”那么,清理 Linux 内核意味着什么?Molanr 认为可能需要对代码进行 2,200 次提交更改。另外,事实也证明清理代码比他最初想象的要麻烦和缓慢得多,毕竟 Linux 的年龄已经到了 30 岁了。

目前,Molnar 已经取得了一些成果,在启用了“Fast Kernel Headers”的内核中,每小时的内核构建量可能比目前的原始内核多 78%。这个庞大的补丁系列已经在 x86/x86_64、SPARC、MIPS 和 ARM64 上进行了测试。在支持的架构上,内核构建性能有可能提高 50-80%。

Molnar 表示“除了 25 个子树和 2,200 个提交之外,fast-headers 树修改了现有的内核源文件的一半以上。”这个工作已经修改了 25288 个文件,插入 178024 个文件,删除 74720 个文件。换句话说,“是的,这可能是有史以来最大的单一功能发布”,这些变化几乎会影响 Linux 内核中的每个程序。目前该项目以"征求意见"的方式发出。

更多细节:

https://lore.kernel.org/lkml/YdIfz LMewetSaEB@gmail.com/T/#u

0 人点赞