Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: Link-Time Optimizations Near Reality For x86 Linux Kernel

  1. #1
    Join Date
    Jan 2007
    Posts
    14,914

    Default Link-Time Optimizations Near Reality For x86 Linux Kernel

    Phoronix: Link-Time Optimizations Near Reality For x86 Linux Kernel

    Another interesting change that's already landed for the Linux 3.15 kernel is infrastructure work for supporting x86 kernels optimized via LTO for yielding better kernel performance...

    http://www.phoronix.com/vr.php?view=MTY0OTc

  2. #2
    Join Date
    Jul 2012
    Posts
    152

    Default

    64 bit systems are supported by this technology or they don't need it?

  3. #3
    Join Date
    Dec 2012
    Posts
    196

    Default

    I'd like to see any public benchmark result for kernels compiled with LTO, with those speedups and "minor regressions"

  4. #4
    Join Date
    Apr 2009
    Posts
    557

    Default

    This is a bit above my head, but LLVM also has LTO. Last time I heard (lat last year), LLVM was already pretty close to compile the kernel without extra patching. That's another area where optimizations could arise. Or at least, given that LLVM/CLang is much faster, perhaps LLVM + LTO will still keep compile times reasonably manageable.

    http://llvm.org/docs/LinkTimeOptimization.html

  5. #5

    Default

    "The work back in 2012 by Intel developers showed the kernel compile time increased by two to four times and needed 4~9GB of memory to complete the task"
    This may not be an issue in GCC 4.9
    http://www.phoronix.com/forums/showt...457#post408457

  6. #6
    Join Date
    Dec 2012
    Posts
    97

    Default

    Quote Originally Posted by Azrael5 View Post
    64 bit systems are supported by this technology or they don't need it?
    x86 is just an instruction set, "x86-64" or "x64" are just slang to refer to the 64-bit version of x86. Heck, x86 was originally 16-bit!

    Quote Originally Posted by newwen View Post
    I'd like to see any public benchmark result for kernels compiled with LTO, with those speedups and "minor regressions"
    I'd like to see that as well, this is of particular interest to me with this project of mine: http://forum.xda-developers.com/devdb/project/?id=1098

  7. #7
    Join Date
    Jul 2012
    Posts
    152

    Default

    Quote Originally Posted by MWisBest View Post
    x86 is just an instruction set, "x86-64" or "x64" are just slang to refer to the 64-bit version of x86. Heck, x86 was originally 16-bit!



    I'd like to see that as well, this is of particular interest to me with this project of mine: http://forum.xda-developers.com/devdb/project/?id=1098
    So 64bit linux systems are optimized or not in link-tyme?

  8. #8
    Join Date
    Sep 2009
    Posts
    56

    Default

    Quote Originally Posted by mendieta View Post
    This is a bit above my head, but LLVM also has LTO. Last time I heard (lat last year), LLVM was already pretty close to compile the kernel without extra patching. That's another area where optimizations could arise. Or at least, given that LLVM/CLang is much faster, perhaps LLVM + LTO will still keep compile times reasonably manageable.

    http://llvm.org/docs/LinkTimeOptimization.html
    LTO support need to be throughout the toolchain, the compiler is just one part.
    And LTO has some nasty surprises of breaking code that worked before, both by exposing bugs that only occur when you aggressively inline functions (arguably code thats not conform to C/C++ standard details) and by bugs withing the LTO paths. And then the same starts over when linking (throwing away data/code that proved unused/unreachable - while not knowing every use of it).

    LLVM fares alot better in the "LTO bugs" category since it was designed for it instead of having it rudely patched in. Many projects however are adopted to the way compilers worked - and wont just play nice with things that break decade old assumptions.

  9. #9
    Join Date
    Jan 2012
    Posts
    63

    Default

    Quote Originally Posted by discordian View Post
    LLVM fares alot better in the "LTO bugs" category since it was designed for it instead of having it rudely patched in. Many projects however are adopted to the way compilers worked - and wont just play nice with things that break decade old assumptions.
    LTO in GCC is supported just as well as anything else. Or do you consider code such as the automatic vectorization optimizer or hidden symbol support "rudely patched in?"

    It takes some time for new features to mature and have all of their problems discovered and fixed, that's all.

  10. #10
    Join Date
    Dec 2012
    Posts
    97

    Default

    Quote Originally Posted by Azrael5 View Post
    So 64bit linux systems are optimized or not in link-tyme?
    ... x86 doesn't mean only 32-bit, it technically includes 64-bit as well.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •