Announcement

Collapse
No announcement yet.

Link-Time Optimizations Near Reality For x86 Linux Kernel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    64 bit systems are supported by this technology or they don't need it?

    Comment


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

      Comment


      • #4
        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

        Comment


        • #5
          "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

          Comment


          • #6
            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!

            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

            Comment


            • #7
              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?

              Comment


              • #8
                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.

                Comment


                • #9
                  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.

                  Comment


                  • #10
                    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.

                    Comment

                    Working...
                    X