I think it's far assesment to say that on SATA with NCQ/31 tags (max is actually 31, not 32 tags), it's pretty much impossible to have acceptable write performance without using write cache. We could never saturate even drive with 16MB cache with just 31 tags and 64k maxphys. So it's IMO not useful to design for world without disk drive write cache.
Back to discussion about B_ORDERED: As was said before, SCSI ORDERED tag does precisely what we want for journal commit record - it forces all previous commands sent to controller to be finished before the one with ORDERED tag is processed, and any commands sent after the ORDERED tagged one are executed only after the previous ordered command is finished. No need for any bufq magic there, which is wonderful. Too bad that NCQ doesn't provide this. That said, we still need to be sure that all the previous commands were sent prior to pushing ORDERED command to SCSI controller. Are there any SCSI controllers with multiple submission queues (like NVMe), regardless of our scsipi layer MP limitations? FWIW AHCI is single-threaded by design, every command submission has to write to same set of registers. Jaromir 2016-09-23 19:51 GMT+02:00 Manuel Bouyer <bou...@antioche.eu.org>: > On Fri, Sep 23, 2016 at 01:46:09PM -0400, Thor Lancelot Simon wrote: >> > > This seems like the key thing needed to avoid FUA: to implement fsync() >> > > you just wait for notifications of completion to be received, and once >> > > you have those for all requests pending when fsync was called, or >> > > started as part of the fsync, then you're done. >> > >> > *if you have the write cache disabled* >> >> *Running with the write cache enabled is a bad idea* > > On ATA devices, you can't permanently disable the write cache. You have > to do it on every power cycles. > > Well this really needs to be carefully evaluated. With only 32 tags I'm not > sure you can efficiently use recent devices with the write cache > disabled (most enterprise disks have a 64M cache these days) > > -- > Manuel Bouyer <bou...@antioche.eu.org> > NetBSD: 26 ans d'experience feront toujours la difference > --