Messages in this thread | | | Date | Tue, 18 Apr 2006 10:54:34 -0600 | From | Erik Andersen <> | Subject | Re: ide-cd.c, "MEDIUM_ERROR" handling |
| |
On Mon Apr 17, 2006 at 08:18:39PM -0500, Zinx Verituse wrote: > I recently bought a DVD drive which appears to not retry enough when it's > having trouble reading a disc - I'm requesting an option (or changing the > default behavior) so that this drive is actually usable with the Linux > ide-cd drivers - specificly, the code: > } else if (sense_key == MEDIUM_ERROR) { > /* No point in re-trying a zillion times on a bad > * sector... If we got here the error is not correctable */ > ide_dump_status (drive, "media error (bad sector)", stat); > do_end_request = 1; > } > needs to be disabled for my drive to read CDs properly.
When I originally added this code, the problem I was seeing was the ide layer was doing 8 retires before it returned to ide-cd, which then did 8 retries itself. Thus processing a bad sector caused no less than 64 reads of the bad sector, all of which failed, and each of which took a fair amount of time, thereby keeping user space stuck in D state for over 10 minutes on a single syscall, which seemed rather bad form...
When I added this code, I was relying on the ide layer to continue to do its ritualistic 8 retries, after which I assumed that no further retries would be likely to help and there was no reason for ide-cd to keep thrashing on the already proven to be dead sector. For my purposes, this helped considerably reduce the amount of time stuck in D state while processing CDs with bad sectors (such as trying to recover the data off my kid's massively scratched up game CDs).
-Erik
-- Erik B. Andersen http://codepoet-consulting.com/ --This message was written using 73% post-consumer electrons-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |