Subject: wd0 lost interrupts after "atactl wd0 setstandby 30"
To: None <current-users@NetBSD.org>
From: Alan Barrett <apb@cequrux.com>
List: current-users
Date: 10/22/2004 10:36:44
[Subject changed because this is no longer about Seebs' problem.]
On Thu, 21 Oct 2004, Daniel Carosone wrote:
> Can't explain why it might happen exactly once per boot, but could it
> simply be the drive trying to remap sectors? Does turning off
> write-cache prevent it, or at least cause it to stop on the second and
> subseqent times through (ie, once it's remapped successfuly)?
I tracked it down further. I can trigger the same behaviour as often as
I like using "atactl wd0 setstandby 30". Here's what happens:
# ( ( jot 20 0 | while read n ; do printf '[%d]' $n ; sleep 1 ; \
done ; echo ) & ) 2>/dev/null ; \
atactl wd0 setstandby 30 ; sleep 20
[0]piixide0:0: lost interrupt
type: ata tc_bcount: 0 tc_skip: 0
ATA command timed out
[1][2][3][4][5][6][7][8][9][10][11]piixide0:0: lost interrupt
type: ata tc_bcount: 16384 tc_skip: 0
piixide0:0:0: intr with DRQ (st=0x58)
wd0e: device timeout writing fsbn 747776 of 747776-747807 (wd0 bn 35685106; cn 17424 tn 23 sn 18), retrying
wd0: soft error (corrected)
[12][13][14][15][16][17][18][19]
The "ATA command timed out" message is from /sbin/atactl. The numbers
in square brackets measure elapsed time in seconds. All other messages
are from the kernel. The hardware is an i386 laptop. The kernel is
NetBSD-2.99.10.
> If so, you probably want to overwrite the whole disk this way, or at
> least run with write cache off through as much write activity as you
> can create. Making sure the whole disk is presently readable (with
> dd) or at least all the data is (with dump) would also be a great
> idea.
The write cache setting makes no difference. The entire disk is
readable with dd.
--apb (Alan Barrett)