AARRRGGHHH! (was Re: TIMEOUT - WRITE_DMA errors in security output)

Kendall Gifford zettabyte at gmail.com
Thu Sep 2 12:23:50 PDT 2004

On Mon, 30 Aug 2004 08:40:00 -0400, Louis LeBlanc
<freebsd at keyslapper.org> wrote:
> Well, it's probably not an old BOIS, since the machine is less than 3
> months old.  I checked the BIOS after the system locked up, and it was
> enabled.  I disabled it, and still couldn't boot until I used the
> generic kernel.
> Right now, the BIOS DMA is off, but the ata_dma sysctl variable is
> still setting to 1.  I'll check this out for a while, and see if it
> works.  If not, I'll call Dell for a new HD and cable.

Well, I read part of this thread a few days ago but haven't had time to respond
until now -- sorry.

I had a problem that seems to be similar if not identical to this one
about three
months ago -- I emailed both freebsd-questions and freebsd-hardware in that
order and never got a response, though I've worked around the problem.

I had been running 4.9 in a system with a new motherboard and two 120 GB
Maxtor ATA133 drives that were also pretty new. I had also purchased new,
custom UDMA133 round cables for the drives and everything worked just
peachy under 4.9. When I upgraded to 5.2.1, however, I had problems just
like what you mentioned -- WRITE_DMA warnings and failures whenever
there was significant disk activity. Eventually this caused one of my vinum
raid plexes to go down.

Anyhow, from researching old mailings and such I noticed that I wasn't alone
in this seemingly inexplicable problem under 5.1 and newer. It seems some
of us with drives (someone mentioned that it seemed to be ones larger than
or equal to 80 or 120 GB or something like that) on an ATA controller like
the VIA 8235 have this problem unless you put the drive(s) into PIO mode.

I did this (using a custom script in /usr/local/etc/rc.d that executes the
atacontrol command: /sbin/atacontrol mode 0 pio4 xxx) for both of my
ATA controllers and everything works fine. I wonder if the ata driver just has
an incompatability with my specific VIA 8235 ata controller or something
like that.

Anyhow, what kind of motheboard/ata-controller do you have?

Also, I noticed that others also recommended turning DMA mode off in
/boot/loader.conf and that you tried it and it didn't work. I also remember
reading somewhere a reason why this won't/doesn't work and that is why
I do it in a /usr/local/etc/rc.d script -- there never seems to be a problem
booting in DMA mode. Here's my pretty standard script:


case "$1" in
    if [ -f /sbin/atacontrol ] && [ -x /sbin/atacontrol ]; then
        /sbin/atacontrol mode 0 pio4 xxx
        /sbin/atacontrol mode 1 pio4 xxx

P.S. Let us know what ata controller you have.

O.T. Also, does anyone know why disabling DMA in
/bool/loader.conf doesn't work?

Kendall Gifford
zettabyte at gmail.com

More information about the freebsd-questions mailing list