Slashdot Mirror


IRC Forum with Matthew Dillon of DragonFly BSD

weebl writes "Thursday October 9th at 6:00PM PDT (9PM EDT/1AM GMT) SlashNET's #forum channel will be hosting a Q&A session with Matthew Dillon of the DragonFly BSD Project. This is your opportunity to ask about DragonFly BSD, BSD in general, or any other questions you might have for him. DragonFly BSD was first announced this past July." If you can't make it to the forum, SlashNET will have a bot running earlier in the day for question submissions, and logs available afterward.

23 of 223 comments (clear)

  1. Shame.... by NightSpots · · Score: 5, Interesting

    His contributions to FreeBSD will be missed.

    I'm sure I represent a large portion of the community who greatly appreciated his work on the VM subsystem (he even pointed the Linux folks in the right direction on more than one occassion), and am disappointed to see him leaving the project.

    I understand that not everyone gets along, that goals differ between members; it's just a shame to see it happen.

    1. Re:Shame.... by CoolVibe · · Score: 4, Insightful
      Why the hell is everyone thinking that Matt left? This fork isn't an 'angry' fork. DFBSD is just another BSD based off of FreeBSD 4 that is exploring some new ideas that Matt has. It's evolution. If DragonFly beats the pants off of 5.x in the future, I'm sure lots of DragonFly code will be appearing in the "official" FreeBSD tree.

      Matt already wrote a SHITLOAD of code for DragonFly. He already overhauled the threading in the kernel, and put in a totally new slab allocator. Right now he's overhauling the namecache system.

      Also, the DragonFly gang are doing chores nobody in the official FreeBSD camp cares enough about, like removal of __P(), removal of the 'register' keyword and ANSIfication of old K&R code. Of course we'll be seeing those efforts back in the other BSDs.

      These changes that Matt and his merry gang of hackers are making are changes that would never be accepted by the FreeBSD deities with a commit bit,because they're intrusive. Hence the reason Matt forked off DragonFly.

      He never left FreeBSD, dammit. Get over it.

    2. Re:Shame.... by m.dillon · · Score: 4, Informative
      The more I look back upon it the more I think forking off DragonFly was the right thing to do. The timing could not be better, in fact. A year ago would have been too early (because we would have had to backport a whole lot more from 5.x, whereas in the last year the FreeBSD folks have backported a considerable amount of work from 5.x to 4.x), A year from now would be too late (4.x would have been 'dead' for too long a period of time). Now is the right time.

      I still contribute to FreeBSD. If I see a bug or a security issue in DragonFly that also exists in FreeBSD they get a head's up, and some of the patch sets we've comitted to DragonFly have been organized in as legible a way as possible to promote a possible port from DragonFly to FreeBSD for those FreeBSD folks interested in the work. But my main focus these days is DragonFly.

      The biggest loss to FreeBSD from my departure is that they have one less person tracking down bugs in the kernel. To be sure, I had done less and less of that over the last year as FreeBSD-5 continued to diverge from what I believed could be supported, but before anyone chimes in with a silly 'Matt hasn't done anything' comment I will note that I spent several days reviewing and commenting on Jeff's scheduler and slab allocator work, which benefited greatly from the comments, plus brainstorming sessions with Julian on KSEs, with Alan and Tor on VM issues, and so forth. I had attempted to put FreeBSD-5 on a better track several times, but the ideas were rejected in piecemeal. I don't think there are any big-picture/multi-disciplinary folk left in the project, which is a problem. Basically the FreeBSD-5 team seems to suffer from a sort of myopia. It is possible to defend a piece of work taken in isolation, such as priority stealing for mutexes or kernel preemption, but when you look at the big picture there are simply too many such pieces, each complex in its own way, in the FreeBSD-5 kernel. The result is a huge mess that only a few programmers can actually navigate through without introducing new bugs, and that is a real problem insofar as progress in FreeBSD-5 goes. Too many developers are working only in their own little corner of their world and too few developers are doing general debugging and architectural work. And, most especially, too few developers are looking out for and supporting the end-users, something that has been a significant part of my work ethic ever since I wrote DICE. There are plenty of FreeBSD developers, their numbers certainly are not decreasing, but the class of developers is far less balanced now then it was in 1998. That is my opinion, anyway.

      Not having to deal with FreeBSD politics anymore as significant reduced my stress levels, and being able to work on innovative new designs rather then having to fix other people's bugs has improved my disposition dramatically :-).

      -Matt

  2. IRC Is Dead by Rick+the+Red · · Score: 3, Funny
    --
    If all this should have a reason, we would be the last to know.
  3. A dragonfly bit me the other day by Dancin_Santa · · Score: 2, Funny

    I was just doing some gardening and it bit me on the back of the hand.

    I don't want to use any operating system that reminds me of that traumatic experience.

    I liked Dillon in Footloose, though.

    1. Re:A dragonfly bit me the other day by Brandybuck · · Score: 2, Funny

      Phhhhft! Linus got charged by an angry penguin, and had to run for his life, but he still works on Linux. I mean, having some rabid penguin chase you around a zoo is much more traumatic that getting bit by a dragonfly.

      --
      Don't blame me, I didn't vote for either of them!
  4. focus by endx7 · · Score: 3, Interesting

    This will be a good chance to find out what DragonFly BSD will be standing for.

    We all know the 3 main (free) BSDs have their focuses, namely:
    FreeBSD: ease-of-use and i386 platform (plus a few others)
    NetBSD: portability
    OpenBSD: security, plus some focus on ease-of-use
    and then there are a few other minors, and Mac OS X

    But the question is, what is DragonFly BSD's focus? What will it offer for us? How will it be useful?

    Perhaps we'll learn at this chat session.

    1. Re:focus by NightSpots · · Score: 4, Informative

      Since it's based on FreeBSD 4, it'll be "All of good things of FreeBSD 4 with a focus on performance."

      There's a LOT of work going into fine grained locking to allow faster SMP (which is a classic slowdown in FreeBSD 4) - light weight kernel threads, advanced caching, messaging APIs, and even plans for a package system that (if it works?) would completely change the way people think about installing third party software.

      There are a lot of big things planned. It may be slow to start, hopefully it'll take off... and we'll see some cross development with the other BSDs.

    2. Re:focus by thallgren · · Score: 5, Insightful

      >There's a LOT of work going into fine grained locking to allow faster SMP

      Unless I'm totally wrong, this is exacly the opposite from what DragonFlyBSD is about. Matt has never liked the way FreeBSD and Linux are designed, a kernel sprinkeled with locks.

      Instead, he's trying to do a kernel where kernel-side subsystems communicate via message-passing, not too far from how exec.library worked in AmigaOS.

      So Matt and his cowboys/cowgirls are actually removing locks. :-)

      Regards, Tommy

    3. Re:focus by Leimy · · Score: 3, Informative

      As far as I know... and I have been following the list as well as reading the website... I see no plans to rely on fine-grained locking as an SMP enabling mechanism. There is an AmigaOS based messaging system that will allow people to run things like Filesystem drivers in userland should they choose to or they can keep it in ther kernel.

      But why are you reading /. comments to find out what this thing is? Go to the website and see for yourself.

    4. Re:focus by m.dillon · · Score: 3, Informative
      Some MP locking is unavoidable, but DragonFly will have much, much less of it then any other MP operating system that I know of. Having to use an MP lock is basically an admission that there will be cache contention between cpus... if not the lock itself, then the data that is being covered by the lock. If you have 4 cpus and all of them at one time or another are accessing a common data structure, then you are wasting 3/4 of your available aggregate L1 and L2 cache space storing that data structure plus you are wasting cycles obtaining the lock, wasting hardware cycles due to cache management operations, and wasting cpu.

      Now, of course, some data structures are more important then others. It doesn't make sense to try to avoid all locking... there are plenty of situations where you have to eat the duplication in the cache and plenty of situations where you have to eat cache mastership changes.

      But there are a ton of situations where the waste is not necessary. In DragonFly these situations translate to: The scheduler, the slab allocator, device driver interrupt management, and the networking stack, just to begin with.

      Lets take the networking stack as an example. In a fine-grained mutex model if a cpu is available it might be called upon to run pending work for the network stack... say processing packets for various TCP connections. In order to do the work the kernel will pull the next packet off the queue, figure out the protocol and port, obtain a fine-grained mutex on the PCB, and then do the work.

      In the DragonFly model the network interrupt will queue the packet and the queueing code will peek at the packet and direct it to a particular protocol thread. Any given connection will be directed to a single thread so, for example, if you have a 4-cpu system and you have told the kernel to create 4 TCP protocol stack threads (one on each cpu), then each new TCP connection will be assigned to a particular thread. Only that thread will process packets associated with that particular TCP connection, which means that no locks are required to process packets for that TCP connection and no L1/L2 cache duplication will occur between cpus because only one thread will ever touch it. If you have 1000 TCP connections, each of your four TCP protocol stack threads will be assigned approximately 250 of them.

      In DragonFly's case the trick then becomes to balance the assignments, but even here we get a leg-up because simply distributing the connections by ^^ mod the number of protocol threads will get you most of the way to that goal. When you add in the cache-locality you have just achieved (you have 4 times the available data cache by not sharing the PCBs across multiple cpus) the result is far higher performance then a fine-grained-but-perfectly-balanced model could ever give you.

      -Matt

  5. Why Dragonfly? by Valar · · Score: 4, Interesting

    If I am a happy Linux or BSD (of some non-Dragonfly kind), then what would you say to entice me to switch? In other words, what do you think Dragonfly is particularly good at, that maybe is lacking elsewhere?

    1. Re:Why Dragonfly? by be-fan · · Score: 3, Informative

      Dragonfly isn't a completed project at this point, or even one that made changes substantial enough to differentiate it from other systems. Dragonfly forked from FreeBSD because they have some very different ideas about where the kernel should be headed than the FreeBSD folks. Dragonfly will be based on a model of very lightweight threads that communicate via a messaging mechanism. They think they can get highly scalable designs without all the locking that the Linux and FreeBSD designs use. If it works, it could be a very large step forward for multi-CPU and clustured systems.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:Why Dragonfly? by m.dillon · · Score: 4, Interesting
      DragonFly's first official release will be in a little less then a year. Half of that time is going to be spent rewriting the infrastructure, which is outlined on the site www.dragonflybsd.org We already have light weight threads and our slab allocator in place (which are a biggies) and the basic infrastructure for syscall messaging and DEV messaging in place. We are also steadily bringing in those elements from FreeBSD-5.x that make sense. At the moment my focus is on fixing inherited bugs and rewriting the namecache code. Other DragonFly developers are focused on syscall sepraration, networking, and userland bits. We are being very, very careful to preserve and improve upon the stability inherent in earlier 4.x releases. In fact, the namecache stage-3 work has been delayed over two weeks now while I have backed up and refocused on fixing a number of unrelated bugs.

      The biggest topic on our lists right now is the discussion on the infrastructure required to support a good binary and source-based package management system. FreeBSD's package management system currently suffers greatly from bitrot and upgrade-breakage (where upgrading one package breaks half a dozen others), amoung other problems. We are discussing the use of variant symlinks and VFS-based 'environments' for deploying and validating port dependancies in a manner that allows multiple versions of anything to coexist on the same system.

      Basically you can think of DragonFly as being all the things I've always wanted to do but couldn't due to politics in the FreeBSD camp. FreeBSD-5 has gone down a road that I believe will lead to a slow, cumbersome, and unmaintainable result. There are plenty of examples of this but the most aggregious is thread preemption in the kernel, preemptive thread movement between cpus (also while in the kernel), and a ridiculously complex API for various types of mutex operations. There are good things in FreeBSD-5, and we will snarf them as appropriate.

      The timing is appropriate. FreeBSD-4.x is nearing its end-of-life, and it is obvious that less care is being taken in preserving its vaunted stability then in the past. DragonFly will be the logical successor to FreeBSD-4.x statring in around a year, and I also fully expect to beat the shit out of FreeBSD-5 SMP-performance-wise by the time too.

      DragonFly's kernel model is basically to operate on cpus in isolation, with movement beween cpus strictly managed. For example, there is a separate light weight kernel scheduler on each cpu which handles all operations related to that cpu and requires the use of no mutexes. The slab allocator is also per-cpu and mutexless. If an operation needs to work on a data structure owned by another cpu an asynchronous IPI (message) is sent to that cpu rather then performing a locking/mutex operation. For example, if cpu #1 needs to free data owned by cpu #2's slab allocator, cpu #1 queues the work to cpu #2 (and in the case of a memory free, the work does not have to be done immediately). The term 'asynchronous' is important in this context, because it means that the IPI latency between cpus can be entirely absorbed and that sequences of messages (in more heavily loaded systems) can be processed in a tight loop. When we get into more complex entities such as the networking stack, the intention is to run the protocol stacks as threads (possibly multiple threads, one on each cpu or as needed by the situation) and assign protocol control blocks to particular threads on particular cpus. This eliminates nearly all locking and mutex operations related to any given protocol control block and guarentees cache locality of reference. If done properly the individual cpu caches on SMP systems will wind up with less duplication and far higher efficiencies then one gets using a fine-grained locking mutex model. In fact, DragonFly's model works equally well in both UP and SMP environments and we expect the SMP support will cause virtually no loss in performance on UP boxes.

      -Matt

  6. Re:It is now official by endx7 · · Score: 4, Funny

    It is now official - Netcraft has confirmed: *BSD is dying

    I really shouldn't reply to this kind of comment, but doesn't that comment seem kinda weird if you consider the fact netcraft runs FreeBSD?

  7. The real shame by the+man+with+the+pla · · Score: 3, Insightful

    Matt Dillon deserves absoluetely no pitty. His outrageous immaturity justified the revocation of his commit bit 1000 times over. Shame on you for painting him to be some kind of victim.

    --
    The linux hacker
    1. Re:The real shame by m.dillon · · Score: 2

      Gee I hope not *exactly* like Theo. But watch out who you lambast. Theo is responsible for or as managed some fairly major improvements in the open-source world, and we are far better off with that work.

  8. Too many Matt Dillons! by PHPee · · Score: 4, Funny

    As soon as I saw Matt Dillon's name associated with BSD, I got really excited. I mean, who knew that the ol' gunslinger Marshal Matt Dillon became a programmer?

    Then, I realized I must have been thinking about the wrong Matt Dillon, but I still thought it was weird that the guy from There's Something About Mary became involved in a BSD project.

    Finally I remembered the other Matt Dillon who developed the DICE C compiler for the Amiga back in the good old days.

    1. Re:Too many Matt Dillons! by MobyTurbo · · Score: 2, Informative
      Finally I remembered the other Matt Dillon who developed the DICE C compiler for the Amiga back in the good old days.
      That Matt Dillon is the FreeBSD one, he did both the DICE compiler and the FreeBSD VM (and some other FreeBSD stuff.)
    2. Re:Too many Matt Dillons! by m.dillon · · Score: 4, Informative
      You could credit me with being the primary mover for fixing the VM system going from 3.x to 4.x, and the buffer cache as well. I did some rewriting when it was called for, but most reorganized smaller sections of code in order to get rid of race conditions (bug fixing), clean up performance issues, and so forth. This created some friction because nobody else was willing to do the necessary work yet everyone still had an opinion on how the work should be done.

      I also completely rewrote the swap management code from the old list-of-holes format to a fixed radix tree with dynamic size hinting, fixed issues in VN and MFS, and generally put out a lot of fires all over the tree. Most of what I did in BSDland was fix bugs, because there were a lot of bugs that needed fixing and, again, there isn't much of a point having an advanced operating system if it crashes every so often.

      I probably spent far more time fixing bugs then anything else. My involvement with FreeBSD began during my BEST Internet days, in the 94 or 95 timeframe, with a commit bit coming in '98 I think, but my involvement with BSD began in 1985 at UC Berkeley, at about the same time I got involved with the Amiga.

  9. The logs will be at slashnet.org by Motherfucking+Shit · · Score: 4, Informative

    For some reason, nobody ever bothers to mention where the logs of the Slashdot IRC forums get posted. After the IRC interview with CmdrTaco and Hemos a few months ago, it took me some digging to figure out where the log wound up.

    For those who can't make the chat, the log will eventually be at http://www.slashnet.org/forums/

    Editors: After the chat is over, any chance of having the log URL linked to the story text as an update?

    --
    "BSD: Free as in speech. Linux: Free as in beer. Windows 10: Free as in herpes." --Man On Pink Corner in #52607549.
  10. Re:Is this the guy that wrote dcron? by m.dillon · · Score: 3, Interesting
    Yah. I still get an occassional email regarding dcron. DCron was written because, at the time anyway, the VixieCron that Linux was using had a huge number of bugs in it. For example, just changing the time could cause VixieCron to suddenly execute hundreds of jobs all at once. This was a long time ago and I expect VixieCron has been fixed since then, but that was the original motivation for writing DCron. I just wanted something small, simple, and dependable, with per-user capabilities.

    It is gratifying to see that DCron is still being used regularly, but I am a bit miffed that nobody has gone and made any truely significant improvements to it. That is part of the nature of open-source, I guess.

    -Matt

  11. Re:Owned by SCO by m.dillon · · Score: 2, Interesting
    Which, very soon now, will hopefully bite SCO in the ass. It's hard to justify significant damages (or any damages at all) for a measily 200 lines of potentially 'stolen' code (SysV->Linux) when all 200 lines have either already been put in the public domain or are obsolete versions of things which ALREADY have equivalent or better functionality in the BSD codepath (the key being that the BSD codepath is completely protected from SCO's foolishness due to the USL lawsuit that AT&T lost).

    I've seen companies go down this road before. In many respects it is a holdover from the pre-internet days (or the pre-widely-dissemenated-internet days), where companies could obfuscate facts and possibly succeed in their absurdities simply due to a lack of collaboration and coordination by their opponents. But in the age of the internet, the truth becomes viral and companies like SCO and VeriSign have a much harder time playing the system.

    This isn't to say that the Media has clued in yet. Up until recently SCO got only glowing reports from investment media sources and research, primarily because most media and research sources simply parrot official press releases from the company and the open-source community has no 'official' source. But even the total idiots writing the glowing press articles are finally clueing into SCO's criminality. Not enough of them, yet, but the tide is turning.

    -Matt