开发者 Thomas Weißschuh 发布了其最新的补丁内容,旨在减少编译 Linux 内核时的最大内存使用量。而对于试图在内存受限的系统中编译内核的开发者,新补丁集应该还可以减少 swapping 和构建时间。
Thomas 主要是针对使用 objtool 处理 vmlinux.o 对象的内存使用,这也是内核构建过程中占用内存的最多的一个步骤。
用 objtool 处理 vmlinux.o 是内核构建中最消耗内存的步骤。通过减少这里的最大内存用量,我们可以减少整个内核构建过程中的最大内存用量。因此,在内核构建过程中,内存匮乏的机器的内存压力得到了缓解;而且由于需要的 swapping 较少,构建速度也更快。
根据介绍,这组 8 个补丁均对 objtool 代码进行了调整,以减少内存使用。特别是在处理 vmlinux.o 时,从循环中的 malloc() 切换到 objtool 代码中循环外的 calloc() 可以减少 3.7% 的峰值内存使用。在 Thomas 构建的另一个内核中,减少 struct reloc 的内存使用量又将内存使用量降低了 3.8%;优化结构符号的布局则将内存使用量降低了 0.5%。此外,还进行了一些其他优化,但没有明显的改进。
更多详情可查看内核邮件列表。
暂无更多评论