lkml.org 
[lkml]   [2004]   [Feb]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: A Layered Kernel: Proposal
    On Wed, Feb 25, 2004 at 09:46:59PM +0200, Grigor Gatchev wrote:
    >
    >
    > On 25 Feb 2004, Christer Weinigel wrote:
    >
    > > Just because there's an academic paper written about something doesn't
    > > mean that its right. For once Richard is partially right, unneccesary
    > > layering can really ruin a system. Grigor said that in 25 years he
    > > has seen few cases of pretty code performing badly, but look at the
    > > failure of SysV streams, it's a really pretty layering model, but in
    > > practice it turns out to be too slow for most anything useful.
    > >
    > > It's not too uncommon with drivers that breaks just because the actual
    > > hardware won't fit into the model that is exposed via a layer. For
    > > example, look at the error recovery of the old Linux SCSI code: it's
    > > hard to do proper error recovery, and it is much slower than it needs
    > > to because first the low level driver tries to do error recovery and
    > > later on the higher layers try to do error recovery too. Multiply a
    > > couple of retries in the SCSI middle layer with another couple of
    > > retries after a timeout a few seconds at the SCSI controller layer and
    > > you have a model where it takes a minute to do figure out that
    > > something is wrong, for something that ought to take just a few
    > > seconds.
    > >
    > > Additionally, because of the strict layering it's not always possible
    > > to hand up a meaningful error status from the lower layers to the
    > > higher layers, it gets lost in the middle just because it didn't fit
    > > into the layers model of the world. It can also mean that it's not
    > > possible to use the intelligent features of a smart SCSI controller
    > > that can do complex error recovery on its own since most layers end up
    > > exposing only the "least common denominator".
    >
    > I may be wrong, but this description seems to me more like an example for
    > bad design and implementation rather than for a bad general idea.

    It may be both. I don't think the resistance is to layering
    as a general idea. The resistance is to rigidly (read
    explicitly) defined layers.

    The 7 (if my memory serves) layer ISO networking definition is
    perhaps a better example. I can't recall hearing of any
    implementation with decent performance that conforms to the
    ISO definition of the layer boundaries.

    What seems a good boundary at one time will likely prove a
    poor one later. Or what may be good in the general can slow
    down the whole system because of one specific subsection
    where it is suboptimal.

    The best is to keep layering in mind (which is already the
    case) but to remain flexible, functional specific and
    mutable.


    --
    ________________________________________________________________
    J.W. Schultz Pegasystems Technologies
    email address: jw@pegasys.ws

    Remember Cernan and Schmitt
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:01    [W:3.126 / U:0.352 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site