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


    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
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-08-19 05:52    [W:0.024 / U:1.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site