SUSE 工程师提交用于优化 Linux 内核的 GCC LTO 补丁


从去年开始,当使用 LLVM 的 Clang 编译器构建 Linux 内核时,已支持为内核构建启用链接时优化 (LTO, link-time optimizations)。而对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。

Clang 的 LTO 支持在 Linux 5.16 中被合并,并一直保留至今。此举除了提升构建性能,对于内核来说,还提供了基于 Clang 的 CFI 支持。

早在十年前,在 Clang 能够构建 Linux 内核主线之前,已经有开发者为内核提交 GCC LTO 补丁,不过最终没有被合并,原因是当时 GCC 的 LTO 支持不够完善,未能说服 Linus。近年来,也有多家厂商发布了针对 Linux 内核的 LTO 补丁。随着现代 GCC 编译器(和 Clang)的发展,LTO 也逐渐变得更好,像 Fedora 在打包他们的发行版安装包时都会默认使用 LTO,也有像 Clear Linux 这样的公司通过使用 AutoFDO(基于程序性能分析工具的反馈式编译优化)来进一步提升其发行版的性能

2022 年年底,SUSE 工程师 Jiri Slaby 提交了 GCC LTO 支持补丁,同时作为“第一次征求意见”,其部分内容是基于 Andi Kleen 先前的补丁以及 SUSE 工程师 Martin Liska 的工作。

虽然对编译器的链接时进行优化通常会提升性能。但目前看来,针对 Linux 内核的 GCC LTO 支持,内核开发者测试后发现并没有明显变化。

详情查看邮件列表。


相關推薦

2023-07-04

LLVM  Git 仓库的代码提交记录显示,它已初步支持 Fat LTO 对象。预计今年秋季的 LLVM/Clang 17 将提供"-ffat-lto-objects"支持。   据介绍,为编译器启用 Fat LTO 对象支持可以让编译器 IR 与最终目标代码一起保存。因此,这些 "fa

2022-11-25

代码的一个原因。 此次支持工作大部分都是由 Linaro 的工程师 Abel Vesa 和 Neil Armstrong 完成的,他们已于 11 月 16 日在 Linux 内核邮件列表上发布了最初的支持。 通过 Linaro 发布的一系列补丁,Snapdragon 8 Gen 2 移动平台支持以下功

2022-04-02

位一体的语言。也就是说,我们希望 Go+ 可以同时被软件工程师、中小学生、数据分析师这... OpenHarmony 3.1 已正式发布。 当前版本在 OpenHarmony 3.1 Beta 的基础上,更新支持以下能力: 标准系统基础能力增强 本地基础音视频播放

2022-12-16

了 /proc/kallsyms 上旧的实现支持。 kallsyms_lookup_name() 函数用于根据名称查找符号的地址,并可用于查找内核符号表中的任何符号。 Zhen Lei 曾在较早的补丁中描述了 kallsyms_lookup_name() 的优化思路: 目前,要搜索一个符号,我

2023-11-24

除DRI1时代过时GPU驱动程序的努力的一部分。 现在,SUSE工程师Thomas Zimmermann计划进一步删除用户空间模式设置的基础设施。他认为,由于Linux 6.6是今年的长期支持版本(LTS)内核。现在是一个很好的时机来删除这个基础设施。如

2023-11-16

包含新的 Rust 特性,并在 Linux 内核的下一个合并窗口中提交。而这个分支,顾名思义就是 Linux Next 的一部分。 Rust-fixes 分支则包含 Linux 内核当前周期的 Rust 修复。还有一个用于集成的实验分支 Rust-dev ,是一个"look good enough"的

2023-01-17

在去年年初,SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文件系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文件系统都不再活跃,并且在现代内核的生产用例中也

2022-10-20

SE 已经为 MicroOS 提供了运行状况检查器,这些检查器可以用于插件的定制开发,详细功能请查看文档:https://documentation.suse.com/sle-micro/5.2/pdf/article-administration-slemicro_color_en.pdf PoC PoC 应考虑以下方面: 时间框架:根据当前的

2022-03-28

识别为英特尔的 Core 2 或 i386 CPU。 上周五,兆芯开发者提交了为 GCC 加入对陆家嘴 CPU 正式支持的。该补丁除了能正确识别处理器,还针对陆家嘴微架构进行了一定的性能调优。此外,补丁还允许 GCC -march/-mtune 专门针对这种微架

2023-02-24

要是将短任务放在当前 CPU 上,以避免跨 CPU 唤醒。Intel 工程师陈宇在补丁邮件中解释道: 在高负载系统中,短期任务频繁跨 CPU 唤醒可能会成为性能问题的主要来源,因为它会带来频繁的上下文切换。 在该补丁生效后,如

2022-10-30

trfs 引入了异步丢弃支持,用于将 SSD TRIM/丢弃移动到事务提交。异步完成工作的效率更高,并有助于减少读取延迟。现在 Btrfs 开发人员计划默认启用它。在固态硬盘作为驱动器时,异步丢弃功能都会自动打开。 目前 SUSE 的 David

2023-03-26

兆芯 “永丰” CPU ▲ 兆芯 “陆家嘴” CPU 近日,兆芯工程师向 Linux 内核提交了首批支持“永丰”架构的补丁。补丁内容主要是为“永丰”架构添加 PMC 支持。

2021-11-17

已经开始了相关的合并工作。根据 Phoronix 的报道,Google 工程师近日提交的补丁在数据中心内提供了可观的 TCP 性能方面的优势。 Linux 内核维护者 David Miller 已合并由 Google 工程师 Eric Dumazet 提交的这些 TCP 优化。这里面最令人

2023-10-19

前两天),相约开源PHP办公室,我们一起聊 AI!>>> 谷歌工程师近日向 Linux 内核提交了一个新补丁,希望为其添加名为 mseal() 的系统调用「mseal() syscall」。 据介绍, 谷歌这个独立于架构的系统调用最初由 Chrome OS 上的 Chrom