Thomas Weißschuh今天发出了一组补丁,旨在减少编译Linux内核时的最大内存用量。反过来,对于试图编译内核的内存受限的系统,这可以带来更少的交换过程和更快的构建时间。特别之处在于他瞄准了用objtool处理vmlinux.o对象的内存使用,这是内核构建过程中最密集的内存步骤。
访问新闻组以了解更多:
https://lore.kernel.org/lkml/[email protected]/
这组8个补丁对objtool的代码进行了调整,以减少内存的使用。特别是,在objtool代码中,从循环中的malloc()切换到循环外的calloc(),在处理vmlinux.o时,峰值内存使用量减少了3.7%。
在另一个由Thomas建立的内核中,减少了struct reloc的内存使用量又减少了3.8%。优化结构符号的布局降低了0.5%的内存使用量,同时还有其他一些优化。
这个正在审查的补丁系列应该有助于减少编译Linux内核时的峰值内存使用,并反过来帮助构建,特别是对于内存数量有限的系统,否则在构建过程中可能会遇到交换问题,反过来会导致构建速度下降。