Where is FreeBSD going?

Matthew Dillon dillon at apollo.backplane.com
Wed Jan 7 15:17:57 PST 2004


:It is INTERESTING to comment on someone whose viewpoint doesn't extend
:beyond the VM system, because out of Greenman, me and even Matt Dillon,
:(and the extremely respected alc), I don't know of any people
:with a myopic VM viewpoint.  An example of that might be Matts ability
:and succes dealing with the VERY IMPORTANT NFS issues, or perhaps my implementation
:of the vfs_bio merged cache, minimal-copy pipe code, kernel memory management
:improvements (which aren't really VM per se), early playing with the ATA
:driver, SIGNIFICANT filesystem work (e.g. the vastly improved LFS didnt'
:get installed because of softupdates making it redundant), careful rework of
:certain portions of low level code, and it is definitely ludicrous
:to claim that Greenman was VM myopic.

    Currently in FreeBSD-5 there are far fewer people able to work on a
    wide range of subsystems due to the complexity of the SMP environment.
    That should be clearly obvious to everyone... I rarely see
    cross-disciplinary commits (though there are other reasons for that
    observation beyond the complexity of the SMP environment).  Certainly
    I see far fewer such commits then occured in the 4.x days.

    Focus is good, but the complexity of the APIs are such that as some
    of the current developers move on to other things large swaths of
    code are going to start to become unattended through lack of 
    understanding, and it could potentially swamp the relatively few 
    interdisciplinary people left in the project.  The SMP interactions
    that John mentions are not trivial... they would challenge *ME* and
    regardless of what people think about my social mores I think most
    people would agree that I am a pretty good programmer.

    I have no doubt that FreeBSD-5 can be stabilized with the current
    development crew, but the warning signs abound and if the SMP
    environmental interfaces are not simplified FreeBSD-5 will end up in
    serious trouble down the line.  The idea (that some people have stated
    in later followups to this thread) that the APIs themselves will
    stabilize is a pipedream.  The codebase may become reasonably stable,
    but there are a lot of things in there that people are going to want
    to rewrite in coming years, and rewriting by people other then the
    original authors is one of the reasons why we had so much trouble in
    the 2.x and 3.x days.  Look at how little VFS has been touched in the
    intervening years despite the fact that it is obvious that it has needed
    a serious rewrite for the last decade.  I can barely figure it out even
    now and I have spent hundreds of hours working on VFS.

    I mean, I don't think anyone can honestly say that the scheduler is
    'done', or even close to done.  Look at how long the original 42 scheduler
    was worked on after it was originally finished?  Same goes for the VM
    system, VFS, the slab allocator, the mutex related code, the USB
    code (EHCI for example), and everything else. 

    Simplifying maintainance should be of paramount concern to everyone,
    and the number one most complex issue in FreeBSD-5 right now are the
    SMP related APIs and non-deterministic scheduler side effects like
    preemptive cpu migration, indirect preemptive switching to
    non-interrupt threads due to priority borrowing, and non deterministic
    side effects from blocking in a mutex (because mutexes are used for
    many things now that spl's were used for before, this is a very
    serious issue).

    See?  I didn't mention DragonFly even once!  Ooops, I didn't mention
    DFly twice.  oops!  Well, I didn't mention it more then twice anyway.

					-Matt
     


More information about the freebsd-hackers mailing list