1. 11
  1. 5

    Dragonfly has gone a long way since; now they’re trading blows with Linux in the performance front, despite the tiny team, particularly when contrasting it with Linux’s huge developer base and massive corporate funding.

    This is no coincidence; it has to do with SMP leveraged through concurrent lockfree/lockless servers instead of filling the kernel with locks.

    1. 3

      This comparison, which seems pretty reasonable, makes it look like it’s still lagging behind.

      1. 7

        What I don’t like about Phoronix benchmark results generally is that they lack depth. It’s all very well to report MP3 encoding test running for 32 seconds on FreeBSD/DragonflyBSD and only 7 seconds on Ubuntu, but that raises a heck of a question: why is there such a huge difference for a CPU-bound test?

        Seems quite possible that the Ubuntu build is using specialised assembly, or something like that, which the *BSD builds don’t activate for some reason (possibly even because there’s an overly restrictive #ifdef in the source code). Without looking into the reason for these results, it’s not really a fair comparison, in my view.

        1. 3

          Yes. This is well worth a read.

          Phoronix has no rigour; it’s a popular website. A benchmark is useless if it is not explained and defended. I have no doubt that the benchmarks run in TLA were slower under freebsd and dragonflybsd, but it is impossible to make anything of that if we do not know:

          1. Why

          2. What is the broader significance

          1. 4

            The previous two comments are fair, but at the end of the day it doesn’t really change that LAME will run a lot slower on your DragonflyBSD installation than it does on your Linux installation.

            I don’t think these benchmarks are useless, but they are limited: they show what you can roughly expect in the standard stock installation, which is what the overwhelming majority of people – including technical people – use. This is not a “full” benchmark, but it’s not a useless benchmark either, not for users of these systems anyway. Maybe there is a way to squeeze more performance out of LAME and such, but who is going to look at that unless they’re running some specialised service? I wouldn’t.

        2. 1

          This comparison, newer and from the same website, makes it look as the system that’s ahead (see geometric mean @ last page).

          Not that I’m a fan of that site’s benchmarks.

          1. 2

            I haven’t done the math, but it seems like most of DragonFlyBSD’s results come from the 3 “Stress-NG” benchmarks, which incidentally measures “Bogo Ops/s”.

            Here’s the benchmark page: https://openbenchmarking.org/test/pts/stress-ng

            I don’t know why Phoronix uses a version called 0.11.07 when the latest on the page seems to be 1.4.0, but maybe that’s just a display issue.

            1. 1

              Christ @ benchmarking with Bogo anything.

      2. 2

        ‘the DragonFlyBSD scheduler will use hyperthread pairs for correlated clients and servers’ out of curiosity, do any other operating systems do this as well?

        1. 1

          I wonder if this is a good idea. Hyperthreaded pairs share compute and provide a benefit only in case of an empty pipeline due to stalling memory operations. Maybe using nearby distinc cores instead would be better? Same CCD for AMD Nearby cores on the same ringbus for ringbus Intels same column/row for mesh Intels

          1. 1

            If async: shared L1 makes shmem ops much faster.

            If sync: whenever server is working, that means client is waiting for it, and vice versa.