On Sat, Dec 9, 2017 at 11:03 AM, Andriy Gapon <a...@freebsd.org> wrote:

> On 09/12/2017 17:44, Mark Johnston wrote:
> > Some GEOMs do not appear to handle BIO_ORDERED correctly, meaning that
> the
> > barrier write may not work as intended.


There's a few places we send down a BIO_ORDERED BIO_FLUSH command
(see softdep_synchronize for one). Will those matter?

As I've noted elsewhere: I'd really like to kill BIO_ORDERED since it has
too many icky effects (and BIO_FLUSH + BIO_ORDERED isn't guaranteed to do,
well, anything since it can turn into a NOP in a number of places. Plus
many of the implementations of BIO_ORDERED assume the drive is like SCSI
and you just set the right tag to make it 'ordered'. For ATA we issue a non
NCQ command, which is a full drain of outstanding commands, send this
command, then start them again which really shuts down the parallelism we
implemented NCQ for :(. We do similar for NVME which is even worse. There
we have multiple submission queues in the hardware. To simulated it, we do
a similar drain, but that's going to get in the way as we move to NUMA and
systems where we try to do the I/O entirely on one CPU (both submission and
completion) and ordered I/O is guaranteed lock contention.

Warner
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to