Linus Torvalds 还在反对 -O3 级别的 Linux 内核优化

如题,考虑到 Linus Torvalds 过去关于编译器优化的一些评论和很久以前使用 GCC 的糟糕体验,这应该不会太令人惊讶,但是 Linus Torvalds 对看到使用 -O3 编译器优化级别构建 Linux 内核的可调 Kconfig 选项不感兴趣没有实质性的理由。

本周早些时候,有一个提议的补丁允许使用 Kconfig 选项来使用编译器的 -O3 优化级别而不是 -O2 编译 Linux 内核。这样的选项实际上已经存在于内核中,但只是针对 ARC CPU 端口公开。提议的补丁是为了使这个“CC_OPTIMIZE_FOR_PERFORMANCE_O3”选项可用于所有架构,尽管带有明确标记的“实验 experimental”标志。一些人对-O3内核构建感兴趣,他们希望获得更好的性能和/或轻松地跟踪 Linux 内核代码,或者在切换到更激进的优化级别时解决编译器问题。

并不是所有的上游开发人员都赞同这个想法,因为 -O3 优化级别已经可以使用 KCFLAGS 环境变量来设置,而且编译器优化可能会带来问题 – 特别是与激进的编译器优化的细微差异,有时很难用其他方法跟踪。

Linus Torvalds 在这个评论中说,他实际上反对拥有这样的 Kconfig 选项。他需要通过一些真实的数据来证明它的好处,但即便如此,正如他过去所引用的那样,历史上存在一些已知的编译器问题,并进行了一些优化。感兴趣的人总是可以使用“KCFLAGS=-O3”来实现相同的行为,但他再次引用了 GCC 编译器优化问题的历史。

老实说,我们还是把 -O3 完全去掉吧。

启用它,然后甚至没有对结果进行构建测试,这是最糟糕的情况。这是可怕的。

“但 ARC 使用它”的论点不是理由。这一直是一个糟糕的论点,ARC需要修复任何导致它的问题(可能已经修复了编译器升级)。

我绝不会接受这是“让人们试试”的说法

如前所述,如果需要,只需使用 KCFLAGS=-O3

-O3 生成的代码比 -O2 更糟糕

所以如果没有一些非常严肃的解释为什么 -O3 突然又变得可以接受,我将*不会*接受这类补丁。

这些解释最好不仅仅是“让人们尝试”。它们应该针对实际负载提供深入的实际性能数据,而不是一些编造的“越大越好”逻辑。

Linus

The post Linus Torvalds 还在反对 -O3 级别的 Linux 内核优化 first appeared on Linux迷.

版权声明:
作者:Alex
链接:https://www.techfm.club/p/32539.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>