Announcement

Collapse
No announcement yet.

Fast Kernel Headers Work Restarted For Linux To Ultimately Speed Up Build Times

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

  • Fast Kernel Headers Work Restarted For Linux To Ultimately Speed Up Build Times

    Phoronix: Fast Kernel Headers Work Restarted For Linux To Ultimately Speed Up Build Times

    Posted at the start of 2022 was a set of 2.3k patches dubbed "fast kernel headers" to massively speed-up build times for compiling the kernel and to address dependency hell situations. While it was quick to iterate at first and some bits got upstreamed, it's been months since hearing anything new on the fast kernel headers topic. But today a new patch series was posted that's restarting the effort in working towards massively speeding up kernel build times...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I must be missing something, a 7700X, 8C/16T, is capable of building the kernel in under 79 seconds, that's not fast enough?

    Linus's system builds it in 22 seconds, how much faster do they think they can go?

    Comment


    • #3
      Originally posted by sophisticles View Post
      I must be missing something, a 7700X, 8C/16T, is capable of building the kernel in under 79 seconds, that's not fast enough?
      Wow I did not think it would be that much faster than my 3800X, unless you're talking about a rebuild after a few changes?

      Comment


      • #4
        Originally posted by sophisticles View Post
        I must be missing something, a 7700X, 8C/16T, is capable of building the kernel in under 79 seconds, that's not fast enough?

        Linus's system builds it in 22 seconds, how much faster do they think they can go?
        Veteran developers: improves performance

        Vocal 1% minority: don't make it faster
        Last edited by Kjell; 31 January 2024, 12:58 PM.

        Comment


        • #5
          As last resort, maybe they could use Precompiled Headers given Max noted that
          Nearly everybody includes them, and they include nearly everything...
          GCC supports them (and probably LLVM as well)...

          Comment


          • #6
            Originally posted by tesfabpel View Post
            GCC supports them (and probably LLVM as well)...
            Clang does support precompiled headers too, but they aren't picked up automatically like on GCC. You'll need to pass them on the commandline.

            Code:
            clang -c -include-pch big-header.hh.pch <other compile options>‚Äč

            Comment


            • #7
              Oh, that's the same guy who proposed this for PHP as well a little while ago: https://externals.io/message/119442
              I was sad to see this rejected.

              Comment


              • #8
                Originally posted by sophisticles View Post
                I must be missing something, a 7700X, 8C/16T, is capable of building the kernel in under 79 seconds, that's not fast enough?

                Linus's system builds it in 22 seconds, how much faster do they think they can go?
                Yes, if you configure your kernel with make allnoconfig followed by time make -j$(nproc), for which the system installing your kernel would be completely useless. I'm assuming on a stock distribution config (make allmodconfig gets you pretty close to this), you're going to clock somewhere between 10-15 minutes, and packaging overhead to make your build redistributable would add another 3 or so minutes.
                Last edited by damentz; 31 January 2024, 01:31 PM.

                Comment


                • #9
                  This kind of work is a real PITA, but in the longterm this helps to improve code quality significantly.

                  Comment


                  • #10
                    Originally posted by damentz View Post
                    somewhere between 10-15 minutes, and packaging overhead to make your build redistributable would add another 3 or so minutes.
                    Used to be times when twenty-forty minutes was a good time. But under that condition what about hot reload in seconds on such machine(superior in that time)? C possible?

                    And headers required as mandatory? With pointers? In this millennia? And in the previous I would also object !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                    Comment

                    Working...
                    X