Re: [PATCH]: Flexible timeout infrastructure

Luben Tuikov
2004-06-15T19:52:56Z

> In the patch as is you overload the eh_cmd_timed_out template function

But this method doesn't exist. How can I be overloading it?

> to mean the LLDD wants to try to handle timed out commands plus start /
> restart / stop the timers. This would appear to limit the interface to
> the LLDD doing both operations which should be separate decisions?

I don't understand what you mean here.

> Also in the comments for the patch you mention that the LLDD may decide
> to resubmit the IO which I assume is why you would want to have control
> of the timers, but wouldn't the LLDD need to also consult if the IO
> should be resubmitted which propagates these tests and could result in
> inconsistent policy.

But the LLDD *does* know if the IO is to resubmitted, it doesn't have to
consult anyone. Hint: targets are *passive*, and thus the stipuations in SAM.

That is, if IO is NOT to be continued, then SCSI Core should call
a TMF, ABORT TASK or ABORT TASK SET, via eh_abort_handler(<cmd>).
(Yes, the eh interface doesn't do 1:1 TMF mapping.)

This is how SCSI Core communicates with LLDD, it's not the case that
LLDD asks SCSI Core each and every time for each and every decision.
First it's not by spec, and second it is unattainable both due to
the hardware reasons mentioned by Doug and I and due to the
recovery quirks.

I really don't see why this is such a big deal when SCSI Core
and LLDDs are unaffected. It is just an _optional_ method
and will do good for SCSI Core. I promise. ;-)

--
Luben