----- Original Message -----
From: "Oliver Neukum" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, May 14, 2000 4:18 PM
Subject: questions on error handling
> Hello gurus,
>
> I have a lot of questions on scsi error handling and scsi in general.
>
> 1. Do we have to provide a scsi_command method() ?
No. In fact, I would rather you didn't - if you have a queuecommand
method, it is wasted space.
> 2. Where are the error returns of scsi_queuecommand() defined ?
I am assuming here you are using the new error handling code. Basically
return 0 if everything went OK, and the command is queued. Return non-zero
if the queuecommand is unable to queue the command (i.e. host busy).
> 3. What method should we provide if the only action we can undertake is a
> generic reset ?
A generic bus reset, a generic device reset, or a generic host reset?
Define only the entrypoints that you are able to implement:
int (*eh_device_reset_handler)(Scsi_Cmnd *);
int (*eh_bus_reset_handler)(Scsi_Cmnd *);
int (*eh_host_reset_handler)(Scsi_Cmnd *);
> 4. Is there a consensus on how to handle a short transfer ? Can we set the
> resid field and report an error ? Will the data be transfered up
> nevertheless ?
This depends a lot on the upper level drivers. Offhand I don't know for
certain. Some (such as tape and generics) will probably handle it
correctly. Disk and cdrom probably won't.
> 5. Under which conditions is an error reported to user space ?
That depends a lot. On the nature of the error, the type of device and
which driver (generics, disk, etc) is pushing the command through. There
are some types of failures for which the mid-level will retry the operation
a limited number of times. Others are passed directly through to the upper
level.
> 6. Is gathering sense data still optional ?
Technically yes, but it is strongly encouraged. There will be a
performance penalty if you fail to gather sense data in that the error
handler thread will have to wake up and request it, and all I/O to the bus
will be blocked while this is taking place.
-Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]