* ide retry behavior
@ 2003-10-20 20:06 Hans-Peter Jansen
0 siblings, 0 replies; 2+ messages in thread
From: Hans-Peter Jansen @ 2003-10-20 20:06 UTC (permalink / raw)
To: linux-kernel
Hi,
I had a 80 GB Maxtor 6L080J4 ide disk crash last week.
While the data recovery task with dd_rescue was successful,
it took about 31 hours to read through the entire disk, and
some tests has shown, that reverse reading was advantageous.
On the other hand, disabling DMA slowed down the read process
to a crawl in the error case, thus I kept DMA on.
Analyzing the syslogs showed, that a few retries are done.
This raises the question, is it possible to adjust the retry
count on the fly, since this would allow a more intelligent
datarecovery strategy:
first run: retry 0 and remember badblocks (persistent)
second run: retry 2 on all badblocks
and allow an arbitrary number of runs with increasing retries.
Looking into the kernel revealed the max_failures setting,
but since it is 1 by default, it's not the mechanism involved
here.
I'm open to experiments with this drive, before returning it
to the distributor.
Again: is there an existing interface to modify the kernels
retry behavior? I hope to reduce the recovery time by factor
5-10, if possible.
If you have an idea on this, please CC me, although I'm
subscribed.
TIA,
Pete
Summary for /dev/hdc -> /dev/hda:
dd_rescue: (info): ipos: 0.0k, opos: 0.0k, xferd: 78177792.0k
- errs: 2520, errxfer: 1260.0k, succxfer: 78176532.0k
+curr.rate: 8034kB/s, avg.rate: 740kB/s, avg.load: 0.0%
An syslog excerpt:
Oct 17 22:36:00 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:00 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225470, sector=34225468
Oct 17 22:36:00 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225468
Oct 17 22:36:06 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:06 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225470, sector=34225470
Oct 17 22:36:06 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225470
Oct 17 22:36:17 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:17 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:36:17 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:36:23 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:23 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:36:23 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:36:28 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:28 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:36:28 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:36:34 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:34 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:36:34 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:36:39 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:39 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:36:39 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:36:45 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:45 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:36:45 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:36:51 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:51 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:36:51 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:36:56 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:36:56 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:36:56 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:37:02 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:02 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:02 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:37:07 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:07 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:37:07 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:37:13 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:13 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:37:13 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:37:19 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:19 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:37:19 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:37:25 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:25 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:25 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:37:31 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:31 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:37:31 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:37:36 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:36 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:37:36 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:37:42 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:42 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:37:42 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:37:48 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:48 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:48 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:37:53 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:53 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:37:53 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:37:59 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:37:59 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:37:59 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:38:05 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:05 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:38:05 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:38:11 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:11 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:11 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:38:17 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:17 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225451, sector=34225450
Oct 17 22:38:17 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:38:22 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:22 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:38:22 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:38:28 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:28 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:38:28 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:38:34 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:34 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:34 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:38:40 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:40 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:38:40 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:38:45 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:45 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:38:45 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:38:51 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:51 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:38:51 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:38:57 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:38:57 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:57 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225448
Oct 17 22:39:02 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:02 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225450, sector=34225450
Oct 17 22:39:02 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225450
Oct 17 22:39:07 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:07 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225452, sector=34225452
Oct 17 22:39:07 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225452
Oct 17 22:39:13 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:13 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225454, sector=34225454
Oct 17 22:39:13 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225454
Oct 17 22:39:19 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:19 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:39:19 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:39:25 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:25 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:39:25 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:39:30 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:30 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:39:30 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:39:36 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:36 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225446, sector=34225446
Oct 17 22:39:36 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225446
Oct 17 22:39:42 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:42 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:39:42 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:39:48 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:48 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:39:48 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:39:53 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:53 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:39:53 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:39:59 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:39:59 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225446, sector=34225446
Oct 17 22:39:59 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225446
Oct 17 22:40:05 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:05 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:40:05 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:40:10 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:10 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:40:10 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:40:16 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:16 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:40:16 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:40:22 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:22 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225446, sector=34225446
Oct 17 22:40:22 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225446
Oct 17 22:40:27 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:27 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:40:27 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:40:33 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:33 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:40:33 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:40:39 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:39 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:40:39 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:40:45 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:45 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225446, sector=34225446
Oct 17 22:40:45 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225446
Oct 17 22:40:50 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:50 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:40:50 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:40:56 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:40:56 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:40:56 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:41:02 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:02 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:41:02 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:41:13 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:13 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:41:13 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:41:18 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:18 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:41:18 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:41:24 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:24 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:41:24 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:41:30 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:30 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:41:30 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:41:35 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:35 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:41:35 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:41:41 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:41 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225444, sector=34225444
Oct 17 22:41:41 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225444
Oct 17 22:41:46 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:46 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225440, sector=34225440
Oct 17 22:41:46 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225440
Oct 17 22:41:52 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:41:52 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225442, sector=34225442
Oct 17 22:41:52 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34225442
Oct 17 22:42:11 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:42:11 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34224981, sector=34224960
Oct 17 22:42:11 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34224960
Oct 17 22:42:21 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:42:21 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34224837, sector=34224832
Oct 17 22:42:21 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34224832
Oct 17 22:42:27 kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 17 22:42:27 kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34224837, sector=34224834
Oct 17 22:42:27 kernel: end_request: I/O error, dev 16:00 (hdc), sector 34224834
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: ide retry behavior
[not found] <785F348679A4D5119A0C009027DE33C105CDB316@mcoexc04.mlm.maxtor.com>
@ 2003-10-20 21:53 ` Hans-Peter Jansen
0 siblings, 0 replies; 2+ messages in thread
From: Hans-Peter Jansen @ 2003-10-20 21:53 UTC (permalink / raw)
To: Mudama, Eric; +Cc: linux-kernel
[Eric, please forgive me the repost to LKML, since it nicely
underscores nicely my attempt!]
Hi Eric,
nice to get some feedback from you. I definitely didn't expected
an answer from down the driving core with such a brillant response
time. Thanks a lot!
On Monday 20 October 2003 22:12, Mudama, Eric wrote:
> > -----Original Message-----
> > From: Hans-Peter Jansen [mailto:hpj@urpla.net]
>
> First, glad you were able to get some data back.
All in all, the damage was pretty harmless. Critical data lives
on IDE SW Raid5 arrays here anyway. This was the first out of 10
Maxtors failing, which were purchased during the IBM IDE disasters
around 2000/2001.
> > Analyzing the syslogs showed, that a few retries are done.
> > This raises the question, is it possible to adjust the retry
> > count on the fly, since this would allow a more intelligent
> > datarecovery strategy:
>
> Not that I am aware of. That being said:
>
> You may have success doing your various retry passes in different
> environmental conditions, however, two attempts on the same LBA at
> the same temperature/humidity/etc I wouldn't expect to give
> different results.
Then let's prove the fact. One could cool the drive, swap controllers,
cable, driver settings...
> There are already hundreds of retries within the drive before we
> report an ECC error... going from 350 or whatever retries to 700
> probably isn't going to change the fact that the data there is
> corrupt.
I'm under the expression, that this is different in my case. It looked
like after some retries, it finally responded with the correct block in
some cases. I will later analyse this further.
>From was I see, the kernel retries up to 8 times to read the same
LBA:
Oct 17 22:36:17 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:36:39 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:02 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:25 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:37:48 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:11 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:34 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
Oct 17 22:38:57 pico kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=34225448, sector=34225448
$((350*8)) = 2800 physical retries, if your number is right.
That's why it took 31 hours to copy the 80 GB. Under error free
conditions, this job takes about 30-60 Min.
Thanks to your hint, I've found the offending piece in ide-disk.c/900:
} else if (stat & ERR_STAT) {
/* err has different meaning on cdrom and tape */
if (err == ABRT_ERR) {
if (drive->select.b.lba &&
/* some newer drives don't support WIN_SPECIFY */
hwif->INB(IDE_COMMAND_REG) == WIN_SPECIFY)
return ide_stopped;
} else if ((err & BAD_CRC) == BAD_CRC) {
/* UDMA crc error, just retry the operation */
drive->crc_count++;
} else if (err & (BBD_ERR | ECC_ERR)) {
/* retries won't help these */
rq->errors = ERROR_MAX;
} else if (err & TRK0_ERR) {
/* help it find track zero */
rq->errors |= ERROR_RECAL;
}
}
Now it looks, like I need an interface for a new option in the
drive structure, where I can switch off this behavior of just
stupidly retrying on CRC errors. Any hints from somebody for
this one (which has a chance to get included, finally...).
Thanks again, Eric. This brought me directly to this.
> --eric
Pete
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-10-20 21:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-20 20:06 ide retry behavior Hans-Peter Jansen
[not found] <785F348679A4D5119A0C009027DE33C105CDB316@mcoexc04.mlm.maxtor.com>
2003-10-20 21:53 ` Hans-Peter Jansen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome