Link-Time Optimization To Speed Up The Linux Kernel

Posted by Michael Larabel on August 19, 2012

An extensive set of patches have been published that allow the Linux kernel to be built with GCC's LTO (Link-Time Optimization) support for generating a faster Linux kernel binary but at the cost of much greater compile times.

GCC's Link-Time Optimization support that's new in the past few years allows for inlining of functions between different files and performing various compile-time optimizations across the binary as a whole, dropping dead code, and running other checks across the entire binary. LTO'ing the Linux kernel increases the compile time by two to four times and needs 4~9GB of memory to complete.

The Link-Time Optimization Support for the Linux kernel is being done by Andi Kleen at Intel. "We see speedups in various benchmarks, but also still a few minor regressions. There's still some outstanding tuning, both in compile time and allow gcc even better optimization. Also the kernel currently triggers some slow behaviour in gcc, which will hopefully improve in future gcc versions, allowing faster LTO builds."

Aside from needing dozens of patches to the Linux kernel, the LTO support requires GCC 4.7 along with a special Linux binutils. Right now these Linux kernel LTO patches are just under a "request for comments" state but will hopefully be merged for a future Linux kernel release. It will be interesting to see how LTO'ing the Linux kernel performs as soon as Phoronix benchmarks are complete.

More details on the Link-Time Optimization support for the Linux kernel can be found in this mailing list thread. Details on GCC LTO are also available from GNU.org.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. NVIDIA Driver Soon Likely To Support EGL, Mir
  2. OpenMandriva Goes Into Alpha Form, Russian-Based
  3. NVIDIA Brings Their Linux Driver To ARM
  4. D Language Still Showing Promise, Advancements
  5. Planetary Annihilation Released For Linux Gamers
  6. Gentoo Starts Work On KDE-Wayland Support
  7. NVIDIA To License Its Kepler GPU Technology
  8. KDE's KWin Made Lots Of Progress In 4.11
  9. Ubuntu Announces Carrier Advisory Group
  10. Qt 5.1 Release Candidate 1 Has Arrived
  11. In-Fighting Continues Over Mir On Non-Unity Ubuntu
Latest Forum Talk
  1. D Language Still Showing Promise, Advancements
  2. Gentoo Starts Work On KDE-Wayland Support
  3. NVIDIA Driver Soon Likely To Support EGL, Mir
  4. NVIDIA Brings Their Linux Driver To ARM
  5. OpenMandriva Goes Into Alpha Form, Russian-Based
  6. Ubuntu Announces Carrier Advisory Group
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite