Thread (5 messages) 5 messages, 2 authors, 2017-08-21

Re: [PATCH] Btrfs: make plug in writing meta blocks really work

From: Liu Bo <hidden>
Date: 2017-08-21 19:57:23

On Mon, Aug 21, 2017 at 03:23:30PM -0400, Josef Bacik wrote:
On Mon, Aug 21, 2017 at 12:14:16PM -0700, Liu Bo wrote:
quoted
On Mon, Aug 21, 2017 at 01:48:01PM -0400, Josef Bacik wrote:
quoted
On Fri, Aug 18, 2017 at 11:42:07AM -0600, Liu Bo wrote:
quoted
We have started plug in btrfs_write_and_wait_marked_extents() but the
generated IOs actually go to device's schedule IO list where the work
is doing in another task, thus the started plug doesn't make any
sense.

And since we wait for IOs immediately after writing meta blocks, it's
the same case as writing log tree, doing sync submit can merge more
IOs.
We're plugging when we do the per-device scheduled IO right?
Yes, we are.
quoted
So we aren't
really gaining anything by it being async.  Also we do a lot of work between the
time that we start writing the marked extents for the tree-log and when we
actually wait for them, so we really don't want to do a synchronous write out in
that case.
Hmm, we've always been doing sync write for meta blocks of log
tree/log root tree, because of EXTENT_BIO_TREE_LOG (introduced in
commit de0022b9da616b95ea5b41eab32da825b0b5150f), and the commit log
claimed about 15% performance gaining in O_SYNC workloads (maybe we
need to re-evaluate it?).
quoted
Instead move the sync_writers into write_and_wait_marked_extents.
Thanks,
I'm OK with the change, but if sync write benefits both transaction
commit case and log tree case, we can unify them to %sync_writers
instead of a bio_flag.
Sigh you're right, I forgot about all of that.  Just delete the magic bio flags
stuff and then this is fine.  Thanks,
OK, good to know it, thanks for the comments.

thanks,
-liubo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help