Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Nov 2011 09:12:34 -0800
From:      Kirk McKusick <mckusick@mckusick.com>
To:        lev@FreeBSD.org
Cc:        freebsd-fs@FreeBSD.org
Subject:   Re: Does UFS2 send BIO_FLUSH to GEOM when update metadata (with softupdates)? 
Message-ID:  <201111261712.pAQHCY8G081783@chez.mckusick.com>
In-Reply-To: <147455115.20111126115248@serebryakov.spb.ru> 

next in thread | previous in thread | raw e-mail | index | archive | help
Kostik has it right. The requirement for SU and SU+J is simply
that the underlying I/O subsystem not issue bio_done on a write
until it is on stable store. If the I/O subsystem wants to cache
it for a while (multiple seconds) before writing it to disk that
is fine (SU thinks in terms of 30-second intervals). The only
thing that SU requires is that the subsystem NOT lie by issuing
the bio_done before it has committed the data to disk. Perhaps
what we need is a "delay acknowledgement until done' flag to make
this clear. My previous suggestion of using BIO_BARRIER was just
a way to try and enforce this behavior. Based on the performance
and other issues raised, this is clearly a bad idea. So, my question
to you is how can we reliably get the underlying systems to not lie
to us about the stability of our I/O request?

	Kirk McKusick



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