Slashdot Mirror


DragonFlyBSD 3.6 Brings AMD/Intel Graphics Drivers & Better SMP Scaling

An anonymous reader writes "DragonFlyBSD 3.6 was released [Monday] with the big new features being dports, Intel and AMD Radeon KMS kernel graphics drivers, major SMP improvements, and improved language support. Dports is the new package management system based upon the FreeBSD Ports collection and replaces pkgsrc as the default; over 20k packages are available via dports. Major SMP scaling improvements come via reducing lock contention within the kernel and other multi-core enhancements. The Intel and Radeon graphics drivers on DragonFlyBSD were ported from the FreeBSD kernel, which in turn were ported from the upstream Linux kernel."

5 of 48 comments (clear)

  1. Timothy's favorite distro by Sarten-X · · Score: 2, Interesting

    Has anybody else noticed that over the last decade, almost all of the DragonFlyBSD release stories have been posted by timothy, and the majority of those were submitted anonymously?

    It's not a particularly popular distro, coming in at #77 today, in an unscientific poll. I get that it's news for nerds, but I'm starting to suspect a wee bit of bias.

    --
    You do not have a moral or legal right to do absolutely anything you want.
    1. Re:Timothy's favorite distro by geek · · Score: 3, Interesting

      Of the BSD's DragonFly is probably one of the more important and active ones. The filesystem they use is one of the biggest advancements in BSD in a long time. I'm not a DragonFly user but I do track it in hopes of one day using it at a point that it fits my needs. FreeBSD 10 however is addressing all of my concerns so DragonFly may slip away from my sites soon.

  2. Re:BSD Fragmentation by Anonymous Coward · · Score: 2, Interesting

    The only real difference is the level of bitterness felt about the overwhelming success of the supposedly "anti business" and "anti freedom" linux project and the GPL license it's published under.

    I think it's safe to say at this point the GPL was the right choice. Linux flourishes today with enormous growth and a huge community. BSD is still around, and it can claim a lot of success.. But, exactly as everyone feared, the big users of BSD don't contribute their improvements back to the main project. Without this, the BSD community stagnates in the relative obscurity it's been facing for the past decade or so. So there's BSD in the playstation3 and 4. So? What good does that do other than to fuel the egos (and possibly the paychecks) of a few developers. The community sees nothing.

    RMS is one of those guys that's annoyingly, uncomfortably, maddeningly correct. He's rude, creepy looking, and hard to get along with. He doesn't sugar coat anything or are about anyone's ego or feelings. Much community may not like what he does or what he has to say, but he's been there since the start and he's always right in the end. He's like the Socrates of computing.

  3. Re:BSD Fragmentation by bluefoxlucid · · Score: 2

    Dragonfly BSD is substantially different from FreeBSD in that it's not using the same fundamental memory management or task scheduling strategies.

  4. SMP contention basically gone from critical paths by m.dillon · · Score: 5, Informative

    This release removes almost all the remaining SMP contention from both critical paths and most common paths. The work continued past the release in the master branch (some additional things which were too complex too test in time for the release). For all intents and purposes the master branch no longer has any SMP contention for anything other than modifying filesystem operations (such as concurrent writing to the same file). And even those sorts of operations are mostly contention free due to the buffer cache and namecache layers.

    Generally speaking what this means is that for smaller 8-core systems what contention there was mostly disappeared one or two releases ago, but larger (e.g. 48-core) systems still had significant contention when many cores were heavily resource-shared. This release and the work now in the master branch basically removes the remaining contention on the larger multi-core systems, greatly improving their scaling and efficiency.

    A full bulk build on our 48-core opteron box took several days a year ago. Today it takes only 14.5 hours to build the almost 21000 packages in the FreeBSD ports tree. These weren't minor improvements.

    Where it matters the most are with heavily shared resources, for example when one is doing a bulk build on a large multi-core system which is constantly fork/exec'ing, running dozens of the same process concurrently. /bin/sh, make, cc1[plus], and so on (a common scenario for any bulk building system), and when accessing heavily shared cached filesystem data (a very common scenario for web servers). Under these conditions there can be hundreds of thousands of path lookups per second and over a million VM faults per second. Even a single exclusive lock in these paths can destroy performance on systems with more than 8 cores. Both the simpler case where a program such as /bin/sh or cc1 is concurrently fork/exec'd thousands to tens of thousands of times per second and the more complex case where sub-shells are used for parallelism (fork without exec)... these cases no longer contend at all.

    Other paths also had to be cleaned up. Process forking requires significant pid-handling interactions to allocate PIDs concurrently, and exec's pretty much require that locks be fine-grained all the way down to the page level (and then shared at the page level) to handle the concurrent VM faults. The process table, buffer cache, and several other major subsystems were rewritten to convert global tables into effectively per-cpu tables. One lock would get 'fixed' and reveal three others that still needed work. Eventually everything was fixed.

    Similarly, network paths have been optimized to the point where a server configuration can process hundreds of thousands of tcp connections per second and we can get full utilization of 10GigE nics.

    And filesystem paths have been optimized greatly as well, though we'll have to wait for HAMMER2 to finish that work for modifying filesystem calls to reap the real rewards from that.

    There are still a few network paths, primarily related to filtering (PF) that are serialized and need to be rewritten, but that and the next gen filesystem are the only big ticket items left in the entire system insofar as SMP goes.

    Well, the last problem, at least until we tackle the next big issue. There's still cache coherency bus traffic which occurs even when e.g. a shared lock is non-contended. The code-base is now at the point where we could probably drop-in the new Intel transactional instructions and prefixes and get real gains (again, only applicable to multi-chip/multi-core solutions, not simple 8-thread systems). It should be possible to bump fork/exec and VM fault performance on shared resources from their current very high levels right on through the stratosphere and into deep space. Maybe I'll make a GSOC out of it next year.

    The filesystem work on HAMMER2 (the filesystem successor to HAMMER1) continues to progress but it wasn't ready for even an early alpha