Does UFS2 send BIO_FLUSH to GEOM when update metadata (with softupdates)?

Pawel Jakub Dawidek pjd at
Fri Nov 25 23:02:22 UTC 2011

On Fri, Nov 25, 2011 at 01:37:56PM +0200, Kostik Belousov wrote:
> On Fri, Nov 25, 2011 at 12:02:35PM +0100, Pawel Jakub Dawidek wrote:
> > On Wed, Nov 23, 2011 at 09:44:44PM +0200, Kostik Belousov wrote:
> > > On Wed, Nov 23, 2011 at 11:00:26PM +0400, Lev Serebryakov wrote:
> > > > Hello, Freebsd-fs.
> > > > 
> > > >   Does UFS2 with softupdates (without journal) issues BIO_FLUSH to
> > > > GEOM layer when it need to ensure consistency on on-disk metadata?
> > > No. Softupdates do not need flushes.
> > 
> > Well, they do for two reasons:
> > 1. To properly handle sync operations (fsync(2), O_SYNC).
> > 2. To maintain consistent on-disk structures.
> > 
> > The second point is there, because BIO_FLUSH is the only way to avoid
> > reordering (apart from turning off disk write cache).
> > 
> > SU assumes no I/O reordering will happen, which is very weak assumption.
> You are not saying the whole truth there.
> SU only depends on the device reporting the finished write to not lie.
> The disk layer performing reordering of the writes, or device itself
> reordering (but properly reported with some tagging, e.g. NCQ) are
> very much fine with SU.

Yes, the consolusion is that for SU to keep its state consistent on-disk
you need either truly synchronous writes or no reordering. You don't
need synchronous writes to maintain SU consistency, you only need to
keep ordering right.

Because synchronous writes are hard to count on these days, you need to
ensure the ordering is right by either using BIO_FLUSH or some
(nonexistent) BIO_BARRIER.

Synchronous writes (or BIO_FLUSH) are needed to handle O_SYNC/fsync(2)
properly, which UFS currently doesn't care about.

> Harware that reports finished write and not making the data to stable
> storage, or software driver that does such thing itself are just
> utterly broken.

Well, we ask hardware to do this by default - we turn on disk write
cache by default. Solaris doesn't do that, for example.

Pawel Jakub Dawidek             
FreeBSD committer               
Am I Evil? Yes, I Am!           
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url :

More information about the freebsd-fs mailing list