Date: Sat, 9 Dec 2017 19:36:59 -0700 From: Warner Losh <imp@bsdimp.com> Cc: Mark Johnston <markj@freebsd.org>, src-committers <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r326731 - head/sys/ufs/ffs Message-ID: <CANCZdfoM0xhtFsajOQA2RB1FkX0y83z=vUUk72jcQNKqrdGkYQ@mail.gmail.com> In-Reply-To: <a1d303b4-14b8-6a3d-3648-96a69bed7144@FreeBSD.org> References: <201712091544.vB9FiVUI096790@repo.freebsd.org> <a1d303b4-14b8-6a3d-3648-96a69bed7144@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Dec 9, 2017 at 11:03 AM, Andriy Gapon <avg@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfoM0xhtFsajOQA2RB1FkX0y83z=vUUk72jcQNKqrdGkYQ>