Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Announcements Operating Systems BSD

IRC Forum with Matthew Dillon of DragonFly BSD 223

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.
This discussion has been archived. No new comments can be posted.

IRC Forum with Matthew Dillon of DragonFly BSD

Comments Filter:
  • Shame.... (Score:5, Interesting)

    by NightSpots ( 682462 ) on Monday October 06, 2003 @11:59PM (#7150364) Homepage
    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.
    • Re:Shame.... (Score:5, Insightful)

      by CoolVibe ( 11466 ) on Tuesday October 07, 2003 @07:42AM (#7151799) Journal
      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.

      • He never left FreeBSD, dammit. Get over it.

        He was stripped of his commit bit. Effectively, that means his contributions are slow and filtered. He's not gone, but his role is diminished.
      • >removal of __P(), removal of the 'register' keyword and ANSIfication of old K&R code

        *removal of __P()?
        Could you explain what this is? I suppose that this is FreeBSD specific..

        *removal of the 'register' keyword
        If memory serves, the register keyword is only a hint to the compiler, so a global search and replace should be enough to remove the register keyword, no?

        *ANSIfication of old K&R code
        K&R, ouch my memory is fading, but I think that some preprocessor can do it automatically, no?

        Not th
        • __P () is what lets the same code be compiled by both ansi and k&r c compilers - ansi compiler sees the prototype and k&r sees a version that keeps it civil too.
    • Re:Shame.... (Score:5, Informative)

      by m.dillon ( 147925 ) on Tuesday October 07, 2003 @02:09PM (#7155067) Homepage
      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

  • 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.
    • 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.
  • focus (Score:3, Interesting)

    by endx7 ( 706884 ) on Tuesday October 07, 2003 @12:10AM (#7150433) Homepage Journal
    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.
    • Re:focus (Score:5, Informative)

      by NightSpots ( 682462 ) on Tuesday October 07, 2003 @12:18AM (#7150473) Homepage
      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.
      • Re:focus (Score:5, Insightful)

        by thallgren ( 122316 ) on Tuesday October 07, 2003 @02:48AM (#7151048)
        >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

        • Re:focus (Score:4, Informative)

          by m.dillon ( 147925 ) on Tuesday October 07, 2003 @01:42PM (#7154809) Homepage
          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

      • Re:focus (Score:4, Informative)

        by Leimy ( 6717 ) on Tuesday October 07, 2003 @08:57AM (#7152129)
        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 [dragonflybsd.org] and see for yourself.

    • Re:focus (Score:1, Insightful)

      by Anonymous Coward
      Perhaps we'll learn at this chat session.

      Perhaps you can learn at this webpage [dragonflybsd.org], dipshit.

    • by goon ( 2774 )
      OpenBsd [openbsd.org] could probably summed up more accurately as emphasising stability and security [daemonnews.org]. Not so sure about ease of use.
  • Why Dragonfly? (Score:5, Interesting)

    by Valar ( 167606 ) on Tuesday October 07, 2003 @12:13AM (#7150442)
    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?
    • Sorry, I forgot to mention this: that was addressed to any DragonFly users in the crowd. The comment doesn't make much sense otherwise. Though I have been known to talk to myself...
    • Re:Why Dragonfly? (Score:4, Informative)

      by be-fan ( 61476 ) on Tuesday October 07, 2003 @01:13AM (#7150757)
      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.
    • Re:Why Dragonfly? (Score:5, Interesting)

      by m.dillon ( 147925 ) on Tuesday October 07, 2003 @12:52PM (#7154252) Homepage
      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 [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

      • So does all this mean that MP FreeBSD machines will be able to do all the funky science shit I see on two out of three pages of "Linux Journal"? 860 node BSD clusters in our future? That sure would help me out in the next Usenet pissing contest. Plus I could justify taking W2k off my 4 way xeon box. Matt should be elected to high public office.
        • The biggest benefit/drawback that I see is all the Slashdot trolling mirroring/mocking/echoing the "Imagine a Beowulf cluster of these" with "Imagine a Dragonfly cluster of these..." The change will be felt mostly when the pissing contest and flamewar between the trolls' biters resurrect the old Linux/BSD holy war.

          I predict this will happen when people figure out how to get the Dragonfly threading/messaging code into NetBSD.

      • It seems to me that your SMP (Symmetric) kernel could just as easily (with a kernel module or something) become AMP (Asymmetric): creating one class of thread on a particular class of processor. What I mean is the loader would create an executable main memory thread/object tagged for a DSP or a x86 or an AMD64 or PPC processor, and the kernel would be able to execute these tagged objects on specific processors on expansion cards or a remote host or a FC WWPN target or such craziness..

  • The real shame (Score:3, Insightful)

    by the man with the pla ( 710711 ) on Tuesday October 07, 2003 @12:26AM (#7150534)
    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.
  • Since this guy shares the name with that actor, I remembered the name. Is this the same Matt Dillon who is responsible for dcron on my Gentoo system?
    • by m.dillon ( 147925 ) on Tuesday October 07, 2003 @01:02PM (#7154389) Homepage
      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

      • 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.

        As a happy user of DCron, I can't honestly think there's anything significant to improve upon. It works, and works well. Thanks for a great piece of software!
  • by PHPee ( 559830 ) on Tuesday October 07, 2003 @12:35AM (#7150578) Homepage
    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 [tvland.com] 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 [imdb.com] became involved in a BSD project.

    Finally I remembered the other Matt Dillon [backplane.com] who developed the DICE C compiler for the Amiga back in the good old days.
    • 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.)
    • by m.dillon ( 147925 ) on Tuesday October 07, 2003 @12:09PM (#7153764) Homepage
      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.

  • by Motherfucking Shit ( 636021 ) on Tuesday October 07, 2003 @12:51AM (#7150669) Journal
    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/ [slashnet.org]

    Editors: After the chat is over, any chance of having the log URL linked to the story text as an update?
  • .. on how many hundreds of trolls from slashdot posting the ever so popular FreeBSD is dieing story and goatse.cx in ascii will head on over to the channel?

    Or better yet fooling the irc admins into thinking its a DDOS attack. :-)

    Wouldn't it be easier to use the handy slashdot moderation? I think CmdTaco would be willing to hand him 30 of the most highly rated questions.

"A car is just a big purse on wheels." -- Johanna Reynolds

Working...