lkml.org 
[lkml]   [2005]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subjectlibata error handling

    Tejun,

    In an email I cannot find anymore, you asked why I was interested in
    converting libata to use the fine-grained EH hooks in the SCSI layer,
    rather than continued with the current ->eh_strategy_handler() method.

    Several reasons:

    1) The fine-grained hooks of the SCSI layer are somewhat standard for
    block devices. The events they signify -- timeout, abort cmd, dev
    reset, bus reset, and host reset -- map precisely to the events that we
    must deal with at the ATA level.

    But be warned of false sharing, as I talk about in #2...

    2) When libata SAT translation layer becomes optional, and libata drives
    a "true" block device, use of ->eh_strategy_handler() will actually be
    an obstacle due to false sharing of code paths. ->eh_strategy_handler()
    is indeed a single "do it all" EH entrypoint, but within that entrypoint
    you must perform several SCSI-specific tasks.

    3) ->eh_strategy_handler() has continually proven to be a method of
    error handling poorly supported by the SCSI layer. There are many
    assumption coded into the SCSI layer that this is -not- the path taken
    by LLD EH code, and libata must constantly work around these assumptions.

    4) libata is the -only- user of ->eh_strategy_handler(), and oddballs
    must be stomped out. It creates a maintenance burden on the SCSI layer
    that should be eliminated.


    -
    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-08-19 05:52    [W:0.035 / U:0.008 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site