Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jul 2008 10:19:30 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Matt Simerson <matt@corp.spry.com>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: ZFS hang issue and prefetch_disable
Message-ID:  <20080723081930.GB3603@garage.freebsd.pl>
In-Reply-To: <BAA45F6C-FD85-4767-B6AB-F3D2C8D31645@corp.spry.com>
References:  <5E8D64DE-EC9B-4B11-BCB4-17BA63650BB7@corp.spry.com> <48865A68.1010504@quip.cz> <BAA45F6C-FD85-4767-B6AB-F3D2C8D31645@corp.spry.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--zx4FCpZtqtKETZ7O
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 22, 2008 at 03:22:17PM -0700, Matt Simerson wrote:
>=20
> On Jul 22, 2008, at 3:08 PM, Miroslav Lachman wrote:
>=20
> >Matt Simerson wrote:
> >>Symptoms
> >>Deadlocks under heavy IO load on the ZFS file system with  =20
> >>prefetch_disable=3D0.  Setting vfs.zfs.prefetch_disable=3D1 results in =
=20
> >>a  stable system.
> >
> >[...]
> >
> >>With vfs.zfs.prefetch_disable=3D1, a hang will occur within a few =20
> >>hours  (no more than a day). If I keep the i/o load (measured via =20
> >>iostat)  down to a low level (< 200 iops) then I still get hangs =20
> >>but less  frequently (1-6 days).  The only way I have found to =20
> >>prevent the hangs  is by setting vfs.zfs.prefetch_disable=3D1.
> >
> >"With vfs.zfs.prefetch_disable=3D1, a hang will occur within...", did =
=20
> >you realy mean prefetch_disable=3D1 in this sentence? Your whole e-=20
> >mail seems that prefetch_disable=3D1 is good workaround, so I expect =20
> >you have prefetch_disable=3D0 previously which causes hangs...
>=20
> Aye.  That is exactly what I meant.  With vfs.zfs.prefetch_disable=3D1, =
=20
> I get a stable system. With vfs.zfs.prefetch_disable=3D0 (the default) I =
=20
> have frequent deadlocks.
>=20
> Matt
>=20
> Rant:  I really wish that variable wasn't named in the negative, =20
> creating a double negative when prefetch_disable=3D0. IE, it should be =
=20
> named vfs.zfs.prefetch_enable instead.  It's much easier to express in =
=20
> English that prefetch_enable=3D1 means ON and prefetch_enable=3D0 means =
=20
> OFF.  There's also the matter than in some languages, a double or =20
> triple negative still means the negative case. %-\. I'd rather not =20
> have to guess what prefetch_disable=3D1 means.=20

I agree. We even discussed sysctl naming in the past AFAIR to use
exactly 'enable', not 'disable' variants. Although I want to track
Solaris as close as possible, that's why I'm using what they have. The
intent is to make it easier for people to use ZFS on both Solaris and
FreeBSD by not introducing small, but anoying differences.

--=20
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--zx4FCpZtqtKETZ7O
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFIhumSForvXbEpPzQRAiQYAKDw3lAwoYgMPGCkihOV+1tNI8+CYwCgyjiK
pFuRtO5DF/gOiBGVweoehJ0=
=EyyP
-----END PGP SIGNATURE-----

--zx4FCpZtqtKETZ7O--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080723081930.GB3603>