svn commit: r326731 - head/sys/ufs/ffs

Warner Losh imp at bsdimp.com
Sat Dec 9 23:19:38 UTC 2017


On Dec 9, 2017 3:37 PM, "Mark Johnston" <markj at freebsd.org> wrote:

On Sat, Dec 09, 2017 at 08:03:37PM +0200, Andriy Gapon wrote:
> On 09/12/2017 17:44, Mark Johnston wrote:
> > Some GEOMs do not appear to handle BIO_ORDERED correctly, meaning that
the
>
> Nitpick: this should be "geoms" or, even better, "GEOM classes" :-)

Ok. :)

> > barrier write may not work as intended.
> Could the loss of BIO_ORDERED in g_duplicate_bio() contribute to the
problem
> with those GEOM classes?

It does look like a bug that g_duplicate_bio() doesn't preserve that
flag. However, the issue I was looking at was in gmirror: when a mirror
is being synchronized, gmirror will delay writes that collide with an
active synchronization request. However, subsequent writes which do not
collide are passed directly to the mirrors, so an ordering violation is
possible. I plan to fix this. I haven't checked, but graid might have a
similar issue.

I also noticed that gsched doesn't take BIO_ORDERED into account when
sorting requests. Isilon has an I/O scheduler which has this problem
too


I think the cam iosched ignores it too. It's really a Pita. And what do you
do with multiple streams setting these sorts of bios. It's a relic of the
single threaded days...

Warner


More information about the svn-src-all mailing list