Tejun Heo wrote:
Here is another method to deal with it as adding ->timeout_autopsy or
anything similar is too unattractive. A new interface, say,
ata_eh_thaw_port() can be implemented which thaws the port without
resetting it. Then, in BMDMA autopsy, after determining that a timeout
was caused by DMA error, it can thaw the port and adjust qc->err_mask to
AC_ERR_HOST_BUS. How does it sound to you?
Seems rational.
Get the user back up and talking to their disk as fast as possible.
Command timeout is 30 secs (which, I think is a bit too long for ATA
disk devices). If resetting succeeds, it takes less than two seconds. I
don't think it will make any difference to the user.
Well overall I want to minimize the change from existing behavior, since
there is enough change as it is. In current libata and drivers/ide, it
can continue after a properly indicated DMA error without doing a reset.
And I just think its rude, to reset hardware when it doesn't need
resetting. Its sorta like the Windows mentality -- "just reboot it,
that will fix stuff" Linux shouldn't be rude to hardware, when it need
not be :)
Jeff
-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html