A lengthy thread on the stable FreeBSD mailing list discusses problems with the ATA code in the recently released FreeBSD 4.6 [earlier story]. One of the main problems with the ATA code appears to prevent certain fast ATA CD-ROM drives from working properly (AOpen 48x, 52x, and 56x drives were specifically reported with the problem). When hitting this bug, an error such as the following is displayed on the console and the kernel sometimes panics:
acd0: READ_BIG command timeout - resetting
ata1: resetting devices .. done
A workaround is available. The complete thread can be followed in the online stable-FreeBSD archive, starting here. A few relevant messages from the thread follow, including a discussion of the workaround.
From: John Prince
To: stable AT FreeBSD.ORG
Subject: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 11:38:01 -0500
I have to say, I am a bit disappointed in the 4.6 release, as well as the
way problems have been identified, and swept under the carpet..
It appears the ATA code was MFC, and does not perform as one would expect..
In simpler terms, it does not work correctly.
Several people have reported having problems with ATAPI cdrom, as well as
problems with IDE drives and th3e ATA driver(s), since March. I read a few
threads indicating it was being looked into, however it appears nothing was
fixed.
If I am wrong about this, then please tell me.. If not, can someone reply
as to why
the stability of FreeBSD was compromised in favor of an improved method, that
does not quite have the bugs out of it..
4.6 release is "Broke" and will not work with many existing hardware
configurations.
4.5 release worked..
My 2 cents..
John Prince
David W. Chapman Jr. writes:
> On Mon, Jun 17, 2002 at 04:19:49PM -0500, John Prince wrote:
>> Hello David
>> >Is this the only other problem?
>> I think instead of asking is this the only problem, we should be saying
>> "How does this impact our existing Users?"
>
> And we can't get a full scope of how it is affecting our existing
> users until we have a list of all the problems.
ATA-related problems I am aware of:
Known Problem: IBM DTLA-307045 (75 GXP series) + VIA 82C686 south bridge
("KT133") locks up on TCQ, times out and falls back to PIO. (I cannot
try my onboard PDC-20265R because FreeBSD avoids TCQ on this chip.)
Works, but slowly. 4-STABLE before MFC was fine in UDMA/66 with
"TAGGED".
Compatibility: (already reported) Linux 2.5 ATA ships with working
tagged command queueing on Western Digital AC420400D (which looks like
an IBM DJNA-352030 clone). FreeBSD does not dare use TCQ on this drive,
and as I hacked up 4-STABLE in spring to try it, it locked up. (I have a
dual-boot FreeBSD/Linux machine, so no worries about differing
hardware.)
Performance: Linux 2.4 and 2.5 ATA sub systems have higher troughput on
sequential read than FreeBSD 4.6-RC ATA. Never looked for latency
through the file system (and cannot, as the Linux 2.4.19-pre BSD FFS
file system is hosed.)
(OTOH, FreeBSD 4.6-RC SCSI -- at least the aic stuff with an Adaptec
2940 UW Pro -- has better throughput than Linux with my U160 drive.)
--
Matthias Andree
Out of curiosity, what great new things does the new ATA code offer? Nothing
is really mentioned in the release
notes, and I don't see any performance improvements or any other significant
changes.
From: John Nielsen
Subject: Re: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 17:00:12 -0600
The release does mention this:
"The ata(4) driver was synchronized with the driver from
FreeBSD -CURRENT as of 18 March 2002."
And the most significant improvement brought about by that MFC is also
mentioned:
"The ata(4) driver now has support for creating, deleting, querying, and
rebuilding ATA RAIDs under control of atacontrol(8)."
Also the usual support for new chipsets (including some ATA133 ones), etc as
mentioned in the hardware notes.
But you're right, if your hardware was well-supported under 4.5, you
probably won't see a world of difference under 4.6. By the same token,
though, there's no reason NOT to upgrade because of the new ata code
(assuming you want to upgrade anyway).
JN
From: Mike Tancsa
Subject: RE: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 19:06:08 -0400
At 06:40 PM 6/17/2002 -0400, Mike Jakubik wrote:
>Out of curiosity, what great new things does the new ATA code offer? Nothing
>is really mentioned in the release
>notes, and I don't see any performance improvements or any other significant
>changes.
Driver support for a number of new controllers from Promise and HighPoint
and the new very large drives IIRC as well as better support for IDE raid
via the ar driver including IDE hot swap enclosures (see man ata and
atacontrol)
---Mike
On Mon, 17 Jun 2002, John Prince wrote:
> Hello Doug.
> Thanks for the reply..
> We will test again, however last test, dma mode did nothing.
> (set via atacontrol mode ..)
That's probably not going to do it for you. Put the following in
/boot/loader.conf.local (create if needed) and reboot:
hw.ata.ata_dma="1"
hw.ata.atapi_dma="1"
Good luck,
Doug
From: John Prince
Subject: Re: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 20:28:06 -0500 (CDT)
Thanks..
and you are right..
From: Bruce A. Mah
Subject: Re: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 21:32:35 -0700
If memory serves me right, John Prince wrote:
> Thanks..
> and you are right..
This worked? OK.
I'll work on an errata entry for this. Here's my understanding, mostly
based on dougb's message plus a little experimenting:
This problem is that some users are having difficulty reading CD-ROMs on
certain ATA CD-ROM drives. This has been seen on the AOpen 48x, 52x,
and 56x CD-ROM drives (are there any non-AOpen drives that have this
problem?). The error message one sees is:
acd0: READ_BIG command timeout - resetting
ata1: resetting devices .. done
(In some cases, this is followed by a kernel panic.)
We need first-time CD-ROM users (with affected hardware) to interrupt
their boot process (at the "Hit [Enter] to boot immediately..." step),
and then do:
ok set hw.ata.ata_dma="1"
ok set hw.ata.atapi_dma="1"
ok boot
(This gets a working system for a CD-ROM install.)
Do the install like normal.
After installation is complete, we need to apply the workaround for
subsequent reboots. Reboot after finishing the installation and then
add these lines to /boot/loader.conf or /boot/loader.conf.local (create
as necessary):
hw.ata.ata_dma="1"
hw.ata.atapi_dma="1"
Then reboot one more time.
Is that roughly right? I'm mostly interested in getting an errata entry
containing the correct workaround out quickly, rather than getting the
list of CDROM drives exactly right. We can fine-tune said list later.
Bruce.
From: Doug Barton
Subject: Re: ATA Atapi 4.6 Release
Date: Mon, 17 Jun 2002 21:39:20 -0700 (PDT)
This all looks good to me. John, can you confirm that the procedure below
works?
Thanks,
Doug
From: Bruce A. Mah
Subject: RFC: Errata on CDROM installs (was Re: ATA Atapi 4.6 Release)
Date: Tue, 18 Jun 2002 16:44:23 -0700
If memory serves me right, Doug Barton wrote:
> This all looks good to me. John, can you confirm that the procedure below
> works?
I've written up a slightly more polished errata note; a PDF rendering is
at the URL below. Could someone tell me if this actually works or not?
(I'm especially interested in feedback on the CD-ROM install procedure.)
I have never seen the problem first-hand, so some of you folks who've
actually experienced it need to say if I've got it right or not.
http://people.freebsd.org/~bmah/doc/errata/article.pdf
If this works, I will commit it and get it onto the Web site so users
experiencing this problem can get a workaround in one easy-to-find
place.
Thanks,
Bruce.