Thread (10 messages) 10 messages, 2 authors, 2012-11-01

Re: [PATCH 0/3] flush delalloc by multi-task

From: Miao Xie <hidden>
Date: 2012-10-26 04:03:16

On Fri, 26 Oct 2012 10:05:55 +0800, Liu Bo wrote:
On 10/26/2012 09:56 AM, Miao Xie wrote:
quoted
quoted
I can see the potential improvements brought by flushing inodes this way.
quoted
But I don't think it makes much sense by making waiting process multi-task,
since even we spread wait order extents into different cpus, they just occpied
the cpu and went on waiting and scheduled then, I mean, the bottleneck is on
what we're waiting for.
Thanks for your comment, I think only btrfs_run_ordered_operations(root, 0) needn't
wait for the works, the others must wait.

The first reason is to avoid changing the semantic of those tree function. The second
reason is we have to wait for the completion of all works, if not, the file data in
snapshots may be different with the source suvolumes because the flush may not end
before the snapshot creation.
Yes, it's right that they must wait for all workers to finish.

But I don't mean that(sorry for my confusing words).

IMO we don't need to let *btrfs_wait_ordered_extents()* run as multi-task.
It also need to be done by multi-task because btrfs_wait_ordered_extents() doesn't imply
that all the dirty pages in the ordered extent have been written into the disk, that is
it also need do lots of things before waiting for the event - BTRFS_ORDERED_COMPLETE, so
the multi-task process is useful, I think.

Anyway, we need test to validate it.

Thanks
Miao
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