Announcement

Collapse
No announcement yet.

Meltdown/PTI Mitigation Impact On BSDs vs. Linux

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

  • Meltdown/PTI Mitigation Impact On BSDs vs. Linux

    Phoronix: Meltdown/PTI Mitigation Impact On BSDs vs. Linux

    Besides the fresh BSD/Linux disk performance tests, some other tests I ran on various BSDs and Linux distributions this week was looking at the performance impact of Intel Meltdown CPU vulnerability mitigation on each of them, namely the performance impact of using kernel page-table isolation...

    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
    Regardless of Meltdown, I can't believe BSD is so slow. I wonder how much of it is ZFS related. I remember thinking, when I was getting into assembly and FreeBSD, that FreeBSD didn't store values in CPU registers like Linux, but used stack memory or something. Am I remembering that wrong? That would make it easy to port, but a lot slower to run.

    Comment


    • #3
      Pretty sure that every filesystem related benchmark is a benchmark ZFS vs ext4. And we already know that near to every filesystem is slower than ext4 (XFS and f2fs are good too). But that is not the point of this benchmark..

      Comment


      • #4
        Originally posted by bpetty View Post
        I remember thinking, when I was getting into assembly and FreeBSD, that FreeBSD didn't store values in CPU registers like Linux, but used stack memory or something..
        There's no need to say ridiculous things like that.

        Comment


        • #5
          Originally posted by bpetty View Post
          Regardless of Meltdown, I can't believe BSD is so slow. I wonder how much of it is ZFS related. I remember thinking, when I was getting into assembly and FreeBSD, that FreeBSD didn't store values in CPU registers like Linux, but used stack memory or something. Am I remembering that wrong? That would make it easy to port, but a lot slower to run.
          Yes you are remembering wrong. FreeBSD uses GCC and LLVM, both of which utilized as much registers as are available regardless of platform.

          Comment


          • #6
            Originally posted by bpetty View Post
            Regardless of Meltdown, I can't believe BSD is so slow. I wonder how much of it is ZFS related. I remember thinking, when I was getting into assembly and FreeBSD, that FreeBSD didn't store values in CPU registers like Linux, but used stack memory or something. Am I remembering that wrong? That would make it easy to port, but a lot slower to run.
            These benchmarks all depend on filesystem performance, and ZFS tends to do worse than something like ext4 out-of-box on single-disk consumer setups, so it's normal.

            Comment


            • #7
              Originally posted by F.Ultra View Post

              Yes you are remembering wrong. FreeBSD uses GCC and LLVM, both of which utilized as much registers as are available regardless of platform.
              I believe he's referring to the calling convention for passing function parameters. It is my understanding that indeed the *BSDs (and other UNIX implementations) for x86-32 did pass parameters on the stack http://www.int80h.org/bsdasm/#system-calls, however for x86-64 *BSDs use the SystemV x86-64 ABI the same as Linux. Either way, the compiler would still certainly make use of the CPU registers! It certainly shouldn't be responsible for the slowness of the *BSDs.

              Comment


              • #8
                Hi, it would be interesting to get some cpu load increase kpi for some typical workloads (mail server, http server, sip server, database, valve SDK game server)
                and to estimate the impact in term of scaling up/out needed due to M/S.
                Mauro

                Comment


                • #9
                  Originally posted by s_j_newbury View Post

                  I believe he's referring to the calling convention for passing function parameters. It is my understanding that indeed the *BSDs (and other UNIX implementations) for x86-32 did pass parameters on the stack http://www.int80h.org/bsdasm/#system-calls, however for x86-64 *BSDs use the SystemV x86-64 ABI the same as Linux. Either way, the compiler would still certainly make use of the CPU registers! It certainly shouldn't be responsible for the slowness of the *BSDs.
                  Well if he where referring to the system call calling convention then that clearly explains it. It sounded like he was talking about the normal function calling convention :-)

                  Comment


                  • #10
                    Originally posted by s_j_newbury View Post
                    I believe he's referring to the calling convention for passing function parameters. It is my understanding that indeed the *BSDs (and other UNIX implementations) for x86-32 did pass parameters on the stack http://www.int80h.org/bsdasm/#system-calls, however for x86-64 *BSDs use the SystemV x86-64 ABI the same as Linux. Either way, the compiler would still certainly make use of the CPU registers! It certainly shouldn't be responsible for the slowness of the *BSDs.
                    Thank you, that is exactly what I was referring too. It had been so long I couldn't recall it precisely enough to describe it better. I am really glad you pointed out that bit about the x86-64 ABI... that is fascinating.

                    Comment

                    Working...
                    X