ATA problems again ... general problem of ICH7 or ATA?
Matt Dawson
matt at chronos.org.uk
Mon Aug 21 13:14:29 UTC 2006
On Monday 21 August 2006 13:00, freebsd-stable-request at freebsd.org wrote:
> > I can confirm the same behaviour with a ULi M1689/Newcastle Athlon64
> > based system running 6.1-RELEASE-p3 (i386). ad6 just detaches without
> > warning and it takes a reboot to bring it back. atacontrol reinit has no
> > effect. Tried the following to resolve the problems:
>
> I don't know what is supposed to be the canonical way to
> reattach a disconnected SATA drive, but while testing our
> new hardware and hot-pulling a drive while the system
> was running, atacaontrol reinit didn't find the reinserted drive
> here, either.
>
> atacontrol detach ata3; atacontrol attach ata3 did.
Yes, that is the method for a controlled remove and reattach, a la hotplug
SATA. AIUI, though, if the drive goes AWOL on its own you need to reinit the
channel before issuing an atacontrol attach foo. In theory... (man 8
atacontrol) In practice, the drive disappears, never to be probed again. A
warm reboot without power down makes it appear again, so the drive itself
isn't confused.
FWIW, the problem takes *far* longer to rear its head when the SATA controller
has a PCI INT and IRQ to itself. Put a NIC onto a shared slot (a very Bad
Thing [TM] as the BIOS simply maps the INT to a single IRQ and both devices
end up sharing it. Now tranfer a large file over the network and watch the
ensuing hilarity) and it happens at least every couple of days. Now, with the
slot shared with the SATA controller empty, I have six days uptime since the
last event, which means I'm probably due one any time now.
At least gmirror rebuilds the array after a simple reboot, but I would expect
the dd operation to throw a wobbly if it's a timing issue/fight for interrupt
between the two drives/channels. It doesn't, which makes me wonder if I'm
barking up the wrong tree, but I can't help noticing that SATA channels have
one interrupt between them whereas PATA channels have one each and all of
these reports are from SATA users...
I wonder what pciconf -lv shows on Miroslav's system? Is the SATA controller
sharing an INT/IRQ with something else? Does moving that device to another
slot alleviate the problem at all?
Please not that Miroslav and I are using totally different drives, chipsets
and processors. He's using, IIRC, an Intel chip with an ICH7 southbridge and
Samsung drives. I'm using an AMD Athlon 64 Newcastle (running the i386 port)
on a ULi M1689 chipset with WD RE2 drives so, although I'd be more than happy
to be the numpty that is wrong and to have ata(4) vindicated by someone else,
I suspect it is ata(4) that is the problem. However, finger pointing isn't
productive and is certainly not fair given that ata(4) has been progressing
so well. Anything else I can try to nail this irksome beast? Any suggestions
for where I've been an idiot (easy, tiger!) and missed something obvious?
BTW, this is a production server (DLT backed up nightly, so the data is safe)
so I can't just pull it to bits. I do have an identical (CPU/mobo) box in the
workshop as a workstation, however, which I could buy/borrow another drive
for and set up gmirror to try things out.
--
Matt Dawson.
matt at chronos.org.uk
MTD15-RIPE OpenNIC M_D9
MD51-6BONE
More information about the freebsd-stable
mailing list