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

Kirk McKusick mckusick at mckusick.com
Sat Nov 26 17:12:35 UTC 2011


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


More information about the freebsd-fs mailing list