i386/77643: SATA PCI controllers fail with WRITE_DMA errors
under GMIRROR
Karl
karl at denninger.net
Sun Mar 6 19:30:06 PST 2005
The following reply was made to PR i386/77643; it has been noted by GNATS.
From: "Karl" <karl at denninger.net>
To: <freebsd-gnats-submit at FreeBSD.org>, <karl at FS.denninger.net>
Cc:
Subject: Re: i386/77643: SATA PCI controllers fail with WRITE_DMA errors under GMIRROR
Date: Sun, 6 Mar 2005 21:26:59 -0600
In an attempt to mitigate this, I saw the following commit in the CVS =
logs:
mdodd 2005-03-02 04:01:37 UTC
FreeBSD src repository
Modified files:
sys/dev/ata ata-queue.c
Log:
When resubmitting a timed out request, reset donecount.
Submitted by: Nate Lawson <nate AT root.org>
Revision Changes Path
1.42 +1 -0 src/sys/dev/ata/ata-queue.c
Is this change supposed to be "safe" against a 5.4-PRERELEASE kernel =
from =20
today (CVSupped about 1700 CST)?
If it is supposed to be, its NOT! =20
It DOES fix the failure to requeue timed out requests, but it also =
provokes=20
radical destabilization of the interrupt system in the kernel (e.g. =
receive=20
serial interrupts "disappear", etc) leading evenutally to a panic.
BTW, it <DOES> appear to fix the requeue problem with disks, and wth =
this in
a disk that takes a timeout (but is actually working) does not =
disconnect
from a GEOM mirror - the requeue is successful.
However, for obvious reasons the kernel instability that results from =
the=20
retried write is not acceptable :)
Don't know if this is germane to what is about to show up in =
5.4-RELEASE,
but if it is, this urgently needs to be looked at.
Needless to say I've backed this attempt at a workaround out.
More information about the freebsd-i386
mailing list