ATA_CAM + ZFS gives short 1-2 seconds system freeze on disk load

Jeremy Chadwick freebsd at
Mon Feb 8 14:51:49 UTC 2010

On Mon, Feb 08, 2010 at 03:33:29PM +0100, Guido Falsi wrote:
> Hi!
> I'm seeing this problem on my machine at work. It's an HP DC 7800,
> mounts an ich9 chipset(not ahci capable). I'm attaching the dmesg.
> I noticed this in the past, but it got evident(and very annoying)
> while recompiling many ports today after the jpeg-8 update.
> It looks like it freezes the system for the second or two it takes
> to flush buffers to disk when there are big outputs. This happens
> when decompressiong big distfiles, mainly. The openoffice port
> triggers this almost continuosly every few seconds during compilation.
> I've also seen this when working with big files(for example graphic
> images in uncompressed formats).
> It gets very annoying and I don't remember this happening before
> activating the ATA_CAM flag. There was some slowdown with big disk
> access, but not a total freeze.

This happens without ATA_CAM (e.g. using ataahci(4) or any other
controller driver).

The behaviour you're describing (bursty heavy disk I/O that stalls the
subsystem) is pretty much the norm on all FreeBSD systems I've seen with
ZFS.  When it starts happening, it's easy to notice/follow using "zpool
iostat 1" or "gstat -I500ms".  Lots of I/O will happen (read or write)
and the ARC is essentially being thrashed -- said utilities won't show
any I/O counters incrementing until some threshold is reached, where
you'll see a massive amount of I/O reported, during which time the
system is sluggish (beyond acceptable levels, IMHO).  A few seconds
later, the I/O counters start reporting 0 as the ARC gets used, then
a few seconds massive I/O, rinse lather repeat.

I've seen Solaris 10 systems which behave the same way, and others which
don't.  I don't know what causes things to start behaving this way.

> BTW there's another thing that shows up on this machine. Lately, this
> too after putting the option ATA_CAM in the kernel, during boot there is
> a long pause(exactly one minute, as the message below states) in this
> point of the dmesg:

This should probably be discussed in a different thread.

| Jeremy Chadwick                                   jdc at |
| Parodius Networking              |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |

More information about the freebsd-stable mailing list