Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 07:03:59 +0000 (GMT)
From:      Terry Lambert <tlambert@primenet.com>
To:        archie@whistle.com (Archie Cobbs)
Cc:        fs@FreeBSD.ORG, sos@FreeBSD.ORG
Subject:   Re: disable write caching with softupdates?
Message-ID:  <200009200703.AAA00154@usr05.primenet.com>
In-Reply-To: <200009200030.RAA08442@bubba.whistle.com> from "Archie Cobbs" at Sep 19, 2000 05:30:06 PM

next in thread | previous in thread | raw e-mail | index | archive | help
> Isn't it safer (in the face of a power failure) to disable write
> caching on a hard disk when softupdates is in use?

Yes.  You _must_ guarantee that the drive does not complete
writes out of sequence that it reports having completed in
sequence.  Hardware which lies is evil.


> The ata driver currenly always enables write caching. Perhaps
> there should be a sysctl knob to turn it on/off?

Write caching should _never_ be enabled, unless you don't
care about the data, or the drive reports the operation
queueing and completion seperately, so that the OS knows
the completion order; even then, the OS will have to be
prepared to stall writing new data until completion has
occurred at any given synchronizatin point, so that it is
impossible for the drive to complete the requests out of
the order permitted by the OS.

With regard to "_never_": even a sync mounted FS will not
be recoverable to a deterministic state if write caching
does not guarantee completion in FIFO order, for obvious
reasons -- it doesn't matter if you go async in the kernel,
or async in the drive, either way your data gets screwed.

The only exception would bit if, like NetApp boxes, PrestoServ,
and similar systems, your writes were intention logged to
NVRAM before being scheduled.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message




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