Re: bio re-ordering
- Reply: Peter Jeremy : "Re: bio re-ordering"
- In reply to: Warner Losh : "Re: bio re-ordering"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 02 Feb 2022 09:49:44 UTC
On 02/02/2022 11:14, Warner Losh wrote: > On Wed, Feb 2, 2022 at 2:05 AM Andriy Gapon <avg@freebsd.org > <mailto:avg@freebsd.org>> wrote: > Hmm... it looks like both the old and new (Open)ZFS use BIO_FLUSH command > without BIO_ORDERED flag. Not sure if it happens to do the right thing anyway > or not. > > > It's an unordered flush then. The flush will happen whenever. I have a vague > memory that ZFS will only issue this command in cases where there's no other I/O > pending. I think that there is still a potential problem that an earlier write request might get re-ordered after the flush. I think that we should add BIO_ORDERED for correctness. > It will be the only way for it to be reliable with nvme, since the > BIO_FLUSH > command isn't ordered w/o BIO_ORDERED flag. So ggate needn't do anything > special for BIO_FLUSH, just BIO_ORDERED. Otherwise, it's free to reorder as it > sees fit. > > The CAM I/O scheduler takes a little bit of liberty here, btw. It interprets > BIO_ORDERED > as being only wrt BIO_WRITE and BIO_FLUSH because if you schedule both a read > and write, the results are undefined. nvd takes a stricter approach and honors > the ordering > more strictly. > > Warner > -- Andriy Gapon