Re: Fw: aic94xx breaks with SATA drives that have medium errors

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Everything works okay until I perform a read I/O to the media-error-causing
> location. Immediately I get:
> 
> aic94xx: escb_tasklet_complete: phy2: REQ_TASK_ABORT

Interesting that you get REQ_TASK_ABORT for a media error...

> But the I/O only returns to the SCSI layer after its full designated
> timeout, instead of returning quickly with MEDIUM_ERROR.

Yep.  The abort function doesn't know how to tell libata to abort the
command.  I suppose the "proper" thing to do would be to modify
sas_ata_task_done to check if the SAS_TASK_ABORTED or
SAS_TASK_INITIATOR_ABORTED flags are set and send some sort of ATA error
code back that would cause a retry.  Though, I don't see why the
sequencer sends back REQ_TASK_ABORT--presumably the drive generates some
media error data that could be fed to libata.

> After that particular I/O fails, every I/O to the driver will immediately
> return as aborted. Unloading and loading the driver reverses the problem
> but may crash the kernel not long after printing this:
> 
> Nov 28 02:13:58 pro210 kernel: aic94xx: Uh-oh! Pending is not empty!
> Nov 28 02:13:58 pro210 kernel: aic94xx: freeing from pending

Yep.  Side effect of above.  I'll send you a patch later today when I
get this sorted out.  In any case, thank you for testing out the driver! :)

--D
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux